问题
我正在尝试对河流数据的 API 进行 AJAX 调用,但我无法让 JSON 对象出现在我的控制台中。相反,我得到 Uncaught ReferenceError: jquery21309662145180627704_1432235037636 is not defined
更新 #1 - 添加了缺少的 AJAX 调用代码
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"
},
最佳答案
您调用的 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
});
关于javascript - 进行 AJAX 调用,得到 "Uncaught Reference Error",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30382876/