Jquery Chrome和Firefox为json提供不同的结果(输入结果)
我有以下代码:Jquery Chrome和Firefox为json提供不同的结果(输入结果),jquery,json,firefox,google-chrome,Jquery,Json,Firefox,Google Chrome,我有以下代码: $.get('http://mapit.mysociety.org/areas/'+ulo, function(response) { console.log(response); var areaList = []; for (var k in response) {
$.get('http://mapit.mysociety.org/areas/'+ulo, function(response) {
console.log(response);
var areaList = [];
for (var k in response) {
var obj = response[k];
areaList.push(obj);
console.log(response[k]);
}
var len = areaList.length;
在Chrome中,它非常有效,例如,将+ulo更改为温布利
在Chrome开发工具上,我根据两个console.log的标题对象获取对象:
反对
索引fb.js:41
[
对象
所有名称:对象
代码:对象
国家:“E”
国家名称:“英格兰”
世代高中:18
发电量低:1
身份证号码:8258
名称:“温布利中心”
家长区:2488
类型:“LBW”
类型名称:“伦敦区病房”
原型:对象
但是,firefox也是如此,我在Firebug中得到了这样的信息:
{“8258”:{“父区”:2488,“世代高”:18,“所有世代名”:{},“id”:8258,“代码”:{“ons”:“00AEHE”,“gss”:“E05000104”,“单位id”:“11458”},“名称”:“温布利中心”,“国家”:“E”,“类型名”:“伦敦区”,“世代低”:1,“国家名”:“英格兰”,“类型”:“LBW”}
索引_fb.js(第41行)
{
索引_fb.js(第48行)
"
索引_fb.js(第48行)
八,
索引_fb.js(第48行)
二,
索引_fb.js(第48行)
五,
索引_fb.js(第48行)
八,
索引_fb.js(第48行)
"
索引_fb.js(第48行)
:
索引_fb.js(第48行)
索引_fb.js(第48行)
{
索引_fb.js(第48行)
"
索引_fb.js(第48行)
p
索引_fb.js(第48行)
a
索引_fb.js(第48行)
r
索引_fb.js(第48行)
e
索引_fb.js(第48行)
n
索引_fb.js(第48行)
t
索引_fb.js(第48行)
_
索引_fb.js(第48行)
a
索引_fb.js(第48行)
r
索引_fb.js(第48行)
e
索引_fb.js(第48行)
a
索引_fb.js(第48行)
"
索引_fb.js(第48行)
:
索引_fb.js(第48行)
索引_fb.js(第48行)
二,
索引_fb.js(第48行)
四,
索引_fb.js(第48行)
八,
索引_fb.js(第48行)
八,
索引_fb.js(第48行)
等等
因此,Console.log(response)是正确的,但它似乎包含了
for (var k in response) {
在firefox中,k=数字,在chrome中,它将k作为一个整数8258处理
我该如何解决这一问题,使其同时适用于这两种情况
谢谢
编辑
这是新代码:仍然是相同的问题:
$.get('http://mapit.mysociety.org/areas/'+ulo, function(response) {
console.log(response);
var areaList = [];
for (var k in response) {
if (response.hasOwnProperty(k)) {
var obj = response[k];
areaList.push(obj);
}
}
我也尝试过,但我是否需要将Get包装到$.ajax中,以确保它知道返回了json。该应用程序在将ajax用于不安全的源时存在问题
到目前为止没有什么乐趣:(Firefox将您的对象视为一个字符串。您应该指定
数据类型:“json”
,以检索适当的json对象,您可以枚举这些属性。Jquery允许您通过最后一个参数$设置数据类型。get
:
$.get(url,successFunction,"json")
嗨,Rob,抱歉,但我不确定我是否理解这一点?只是一个建议:每当您使用javascript执行for in时,将内部部分包装在if(obj.hasOwnProperty…在您的情况下,它将是:for(var k in response){if(response.hasOwnProperty(k)){//logic}如何使用.get语句实现这一点?我在几周前使用了$.getJSON,当我使用它时,它不断地给我一个错误,原因是HTTPS到HTTP等。我在回答中添加了语法,您也可以查看