从 JSONP 请求数据
Requesting data from JSONP
我目前正在使用本机 JavaScript 试验 JSONP。我正在尝试创建一个从 JSONP link 读取数据的应用程序。这里是JSfiddle。目前我在我的控制台中收到一个错误,它似乎与请求的 link 有问题。下面我提交了我的代码片段:
function readResponse(resonse) {
document.getElementsByTagName('div')[0].innerHTML = resonse.feed.entry.length + ' entries retured';
console.log(resonse);
}
(function(){
var src = '',
script = document.createElement('script');
script.src = src;
document.body.appendChild(script);
}) ();
我是漏掉了什么还是做错了什么?
你的端点returns纯JSON。您的浏览器很可能会抱怨语法错误(将左大括号解析为块语句的开头),并且永远不会调用 readResponse
此特定端点通过附加“回调”参数来支持 JSONP。在你的情况下是 &callback=readResponse
我们需要一个用于 jsonp 请求的回调方法,否则它会抛出语法错误。当我 运行 时,我检查了响应对象没有提要 属性
resonse.feed is undefined.
它有标记属性。我在下面尝试过,它开始工作了。
window.readResponse = function(resonse) {
console.log(resonse);
document.getElementsByTagName('div')[0].innerHTML = resonse.markers.length + ' entries retured';
console.log(resonse);
};
(function(){
var src = "http://digitaslbi-id-test.herokuapp.com/bus-stops?northEast=51.52783450,-0.04076115&southWest=51.51560467,-0.10225884&callback=readResponse"
;
var script = document.createElement('script');
script.src = src;
script.async = true;
document.body.appendChild(script);
}) ();
我目前正在使用本机 JavaScript 试验 JSONP。我正在尝试创建一个从 JSONP link 读取数据的应用程序。这里是JSfiddle。目前我在我的控制台中收到一个错误,它似乎与请求的 link 有问题。下面我提交了我的代码片段:
function readResponse(resonse) {
document.getElementsByTagName('div')[0].innerHTML = resonse.feed.entry.length + ' entries retured';
console.log(resonse);
}
(function(){
var src = '',
script = document.createElement('script');
script.src = src;
document.body.appendChild(script);
}) ();
我是漏掉了什么还是做错了什么?
你的端点returns纯JSON。您的浏览器很可能会抱怨语法错误(将左大括号解析为块语句的开头),并且永远不会调用 readResponse
此特定端点通过附加“回调”参数来支持 JSONP。在你的情况下是 &callback=readResponse
我们需要一个用于 jsonp 请求的回调方法,否则它会抛出语法错误。当我 运行 时,我检查了响应对象没有提要 属性
resonse.feed is undefined.
它有标记属性。我在下面尝试过,它开始工作了。
window.readResponse = function(resonse) {
console.log(resonse);
document.getElementsByTagName('div')[0].innerHTML = resonse.markers.length + ' entries retured';
console.log(resonse);
};
(function(){
var src = "http://digitaslbi-id-test.herokuapp.com/bus-stops?northEast=51.52783450,-0.04076115&southWest=51.51560467,-0.10225884&callback=readResponse"
;
var script = document.createElement('script');
script.src = src;
script.async = true;
document.body.appendChild(script);
}) ();