我正在使用jquery函数$ .getJson。它正在发送我想要的数据,生成JSON的PHP脚本正常运行。但是,我遇到的问题是从这里发生的。
在我的$ .getJSON代码中,我希望它只是在成功时记录结果,如果出现错误则记录为错误...你猜对了......我收到了错误......
这是我传递给它的JSON代码,它产生错误,但我看不出它有什么问题....
{
"results":{
"city":[
"metric":"visits",
"dimension":"city",
"data":[["London","5"],["Glasgow","3"],["(not set)","1"],["Aberdeen","1"],["Antalya","1"]]
],
"browser":[
"metric":"visits",
"dimension":"browser",
"data":[["Internet Explorer","11"],["Chrome","9"],["Firefox","3"],["Safari","3"],["Android Browser","2"]]
],
"screenResolution":[
"metric":"visits",
"dimension":"screenResolution",
"data":[["1280x800","5"],["1680x1050","4"],["1024x768","3"],["1366x768","3"],["1280x1024","2"]]
]
}
}
更新显示代码
这是我用于获取结果的代码
$.ajax({
//DEFINE URL being called by Ajax
url:'./getAnalytics.php',
dataType: "json",
data:{dateToSearch:dateToSearch},
success:function(resultsToView){
console.log(resultsToView);
},error:function(resultsToView){
console.log("Error: " + resultsToView);
}
});
控制台显示:
当我得到这个时,调用错误函数而不是成功。 请帮忙。
答案 0 :(得分:3)
您的JSON 无效。方括号表示数组(列表),其中项目没有键。变化
[
"metric":"visits",
"dimension":"…",
…
]
使用花括号到对象(map)语法:
{
"metric":"visits",
"dimension":"…",
…
}
此外,错误回调具有签名Function(jqXHR xhr, String textStatus, String errorThrown)
。您正在记录xhr
对象的字符串化,这没有用。更好地使用
…,
error: function(xhr, status, error) {
console.log("Error: "+error+" ("+status+")", xhr);
}
答案 1 :(得分:2)