javascript - 进行 AJAX 调用,得到 "Uncaught Reference Error"

标签 javascript jquery ajax json

问题

我正在尝试对河流数据的 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/

相关文章:

php - 如何使用ajax访问返回的php变量,作为 View 中的php变量

javascript - 如何使用 jquery 将行名称从 php 传递到 ajax

javascript - 同步等待 $.ajax 调用

javascript - Mocha 测试用 .then stub 了 ajax 调用

javascript - ES6 对于每个/ map 学生成绩

JavaScript:根据字符串包含的数字对字符串进行排序

javascript - jQuery 在检索 .val() 时取消选择输入字段?

javascript - Symfony2 可以用 ajax 刷新 twigs block 吗?

javascript - 带教程的 Raphael.js 条形图

javascript - 带有选择输入的 Vue v-model