JSONP格式是否必须完美?见例子

时间:2012-06-24 14:28:17

标签: javascript jquery jsonp

我正在使用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。

1 个答案:

答案 0 :(得分:8)

  

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

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

您应该使用callback=?代替callback=cbfunc,而不是?,如documentation的JSONP部分所述。

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

由jQuery将{{1}}替换为您正在使用的匿名成功回调的名称。