我在生成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对象如下所示:
目前我收到错误消息。 “无法找到变量:randomNum”这告诉我我没有正确定位对象。 同样重要的是要注意,当我点击F12时,JSONP对象确实出现在我的资源中。
有关如何定位远程JSONP对象的任何建议吗?
答案 0 :(得分:4)
问题出在您的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()
。