我正在使用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。
答案 0 :(得分:8)
我是否正确诊断出这一点?
不,这与空白无关。 Javascript与空白无关: - )
您应该使用callback=?
代替callback=cbfunc
,而不是?
,如documentation的JSONP部分所述。
这是现场演示:http://jsfiddle.net/Ssfk2/
由jQuery将{{1}}替换为您正在使用的匿名成功回调的名称。