4

我正在使用 JSONP 尝试从 WOT API 中获取一些结果。请参阅下面的代码:

  // Prepare the URL
  var url='http://api.mywot.com/0.4/public_link_json?hosts=amazon.co.uk/&callback=cbfunc';

  // Lookup
  $.getJSON(url, function(data){
    alert('success');
  });

由于某种原因,这似乎失败了(因为我在浏览器中没有收到警报)。经过一番研究,似乎返回的 JSONP 在回调函数的末尾有一个空格(在最后一个大括号和右括号之间):

cbfunc({ "amazon.co.uk": { "target": "amazon.co.uk", "0": [ 95, 88 ], "1": [ 95, 87 ], "2": [ 95, 87 ], "4": [ 95, 87 ] } } )

使用在线 JSON 格式化程序 (http://jsonformatter.curiousconcept.com/) 后,看起来这个单个空间正在抛出整个 $.getJSON() 函数,因为它无法处理空间?

JSONP 格式真的那么具体吗?我以为 Javascript 忽略了空格?我是否正确诊断了这一点?我可以做些什么来处理 JSONP 并删除空间?

在此先感谢,我正在使用 jQUery BTW。

4

1 回答 1

8

我是否正确诊断了这一点?

不,这与空格无关。Javascript 与空格无关 :-)

您应该callback=?在您的 url 中使用,而不是按照文档callback=cbfunc的 JSONP 部分中的说明使用。

这是现场演示:http: //jsfiddle.net/Ssfk2/

jQuery 将 替换为?您正在使用的匿名成功回调的名称。

于 2012-06-24T14:31:20.527 回答