javascript - 从远程 JSONP 对象访问数据

标签 javascript jquery json ajax jsonp

我在生成 3 个随机数的网站上显示了这个 JSONP 对象。我正在尝试使用嵌入在 HTML 文档中的以下脚本来访问它。

<script>
var url = 'http://dev.apalfrey.me/workspace/te2006-te2801/';

$.ajax({
    type: 'GET', //uses GET function
    url: url, //stored URL in var
    data: {
        'callback': 'randomNum'
    },

    jsonpCallback: 'randomNum',
    contentType: 'application/jsonp',
    dataType: 'jsonp'
}).done(function(response) {
    console.log(randomNum.num1); //ERROR IS HERE randomNum.
});
</script>

JSONP 对象如下所示:

JSONP Object displaying random numbers

目前我收到错误。 “找不到变量:randomNum” 这告诉我我没有正确定位对象。 同样重要的是要注意,当我按 F12 时,JSONP 对象确实出现在我的资源中。

关于如何定位远程 JSONP 对象有什么建议吗?

最佳答案

问题出在您的 done() 处理程序中。您尝试使用名为 randomNum 的变量,但该变量不存在。相反,您需要使用传递给处理函数的 response 变量。

另请注意,response 将是一个数组,因此您需要通过索引访问所需的项目,例如 response[0].num1。试试这个:

var url = 'http://dev.apalfrey.me/workspace/te2006-te2801/';

$.ajax({
  type: 'GET',
  url: url,
  jsonpCallback: 'randomNum',
  dataType: 'jsonp'
}).done(function(response) {
  console.dir(response);
  console.log(response[0].num1);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

另请注意,如果您的目的只是生成一个随机数,那么 AJAX 就显得大材小用了。您只需使用 Math.random() 即可。

关于javascript - 从远程 JSONP 对象访问数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43719252/

相关文章:

json - 在手动停止线程之前,JMeter 没有通过 TCP 协议(protocol)通过 JSON RPC 从服务器获得答案

javascript - 使用匿名函数向数组中的 JavaScript 对象添加值

javascript - 如何让循环中的函数同步运行?

javascript - 网站能否区分有机鼠标移动和使用 PhantomJS 执行的移动之间的区别?

javascript - 仅当高于特定 div 时才调用函数

json - 无法在 JqGrid 中加载 SharePoint 列表项 REST API 响应

javascript - 每 N 个项目分解一个 {{# each}} block

javascript - android webview使页眉div不动,但它下面的内容div可滚动

javascript - 如何使用 JavaScript 获取 HTML Table 中 td 内的链接文本?

json - 使用 "jq"从 JSON 文件导出所需的输出(按正确顺序排列的字段)