进行AJAX调用,获取“未捕获的参考错误”

时间:2015-05-21 19:37:57

标签: javascript jquery ajax json

问题

我正在尝试对河流数据的API进行AJAX调用,但是我无法让JSON对象出现在我的控制台中。相反,我得到Uncaught ReferenceError: jquery21309662145180627704_1432235037636 is not defined

更新#1 - 在缺少的AJAX呼叫代码中添加

AJAX Call

$.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"
  },

1 个答案:

答案 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
});