从JSONP请求数据

时间:2015-07-19 14:11:39

标签: javascript jsonp

我目前正在使用本机JavaScript试验JSONP。我正在尝试创建一个从JSONP链接读取数据的应用程序。这是JSfiddle。目前我在我的控制台中收到一个错误,它似乎与请求的链接有问题。下面我提交了一段代码:

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);
  }) ();

要么我错过了什么,要么我做错了什么?

2 个答案:

答案 0 :(得分:1)

您的端点返回纯JSON。您的浏览器很可能会抱怨语法错误(将开括号解析为块语句的开头),并且永远不会调用readResponse

此特定端点通过附加“callback”参数来支持JSONP。在你的情况下,&callback=readResponse

答案 1 :(得分:1)

我们需要一个jsonp请求的回调方法,否则会抛出语法错误。当我运行它时,我检查了响应对象没有feed属性

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);
}) ();