我正在尝试对河流数据的API进行AJAX调用,但是我无法让JSON对象出现在我的控制台中。相反,我得到Uncaught ReferenceError: jquery21309662145180627704_1432235037636 is not defined
更新#1 - 在缺少的AJAX呼叫代码中添加
$.ajax({
url: 'http://opengov.brandon.ca/OpenDataService/default.aspx?format=jsonp&dataset=riverlevel&columns=Date',
type: 'GET',
dataType: 'jsonp',
success: function(result){
console.log(result);
}
});
API文档: http://opengov.brandon.ca/api.aspx
查询字符串:
?format=jsonp&dataset=riverlevel&columns=Date
转到url for the AJAX call,我看到了:
jsonpcallback([
{
"Date" : "19/05/2015 12:26:05 PM",
"River Level (ft)" : "1170.16000",
"River Level (m)" : "356.66477"
},
{
"Date" : "15/05/2015 9:01:20 AM",
"River Level (ft)" : "1170.51000",
"River Level (m)" : "356.77145"
},
{
"Date" : "14/05/2015 9:08:09 AM",
"River Level (ft)" : "1170.84000",
"River Level (m)" : "356.87203"
},
答案 0 :(得分:2)
您调用的API并未正确实现JSONP。
回调名称区分大小写,但API正在将其转换为响应中的所有小写。这是一个问题,因为jQuery将为您生成的名称以jQuery
开头(带有大写Q)。
为了解决这个问题,你需要生成自己的回调名称(而不是让jQuery为你做),并确保它不包含任何大写字母。
function callbackName() {
return "jquery_callback" + Date.now();
}
$.ajax({
url: 'http://opengov.brandon.ca/OpenDataService/default.aspx?format=jsonp&dataset=riverlevel&columns=Date&callback=?',
type: 'GET',
dataType: 'jsonp',
success: function(result) {
console.log(result);
},
jsonpCallback: callbackName
});