从远程 JSONP 对象访问数据
Accessing data from a remote JSONP Object
我在生成 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 对象如下所示:
目前我收到一个错误。 "Can't find variable: 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()
.
我在生成 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 对象如下所示:
目前我收到一个错误。 "Can't find variable: 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()
.