我从AJAX $ .getJSON()请求中收到格式错误的 JSON响应。我不明白这个问题。
以下是请求代码:
var myfunc = function(){
$.getJSON( "/", {"data": ""}, function( data, status ){
var values = data;
$("#temperature").html( values.temperature.toFixed(1).toString() );
$("#humidity").html( values.humidity.toFixed(0).toString() );
});
});
这里是收到的JSON数据(通过Firefox调试器提取):
{
"temperature": 17.799999237060547,
"humidity": 35.900001525878906,
"failed": false
}
我无法在这里看到格式错误的。并且代码有效。 DOM元素id="temperature"
和id="humidity"
已正确更新。
我使用$.get()
与JSON.parse()
获得完全相同的结果。
有人知道如何解决问题吗?
答案 0 :(得分:4)
我的猜测是,您通过网络收到的json数据格式不正确,但无论如何都会成功转换为对象。
getJSON会自动对收到的数据应用JSON.parse(..)。
尝试使用Google Chrome上的“网络”监听器标签,以便在解析之前准确查看您收到的响应。可能会缺少“或类似的东西。
如果您有权访问服务器代码,也可以尝试在那里记录响应。
编辑: you might be interested by this link 可能与某些服务器配置有关 Mimetype也被提及in this link。