我知道这个问题已经被问了很多次,但我仍然无法让我的代码工作。我正在尝试从我的Javascript应用程序中进行简单的JSONP调用。代码片段如下:
url="http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=AAA&callback=?";
然后要么:
$.getJSON(url, function(data) {
alert('hello 1');
});
或者:
$.ajax({url: url,
datatype: 'jsonp',
success: function(data) { alert("hello 2"); },
error: function(j, t, e) { alert(t);}
});
没有一种方法是有效的。第二种方法会导致“错误”的警报。第一种方法也没有返回成功。我做错了什么?非常感谢!!
更新:我认为我至少发现了一个问题。让我更深入地研究一下。
更新2:对不起,这段代码实际上是有效的,至少第一种方法是有效的。在这段代码片段周围有一个微妙的错误,导致代码无法正常工作,但总体而言这个方法很好用。异步调用有时会有点棘手:-)
callback=?
会出现错误。如果删除callback=?
或者给它一个值,比如callback=foo
,那么它就可以工作了。如果你正在附加一个值到callback
上,那么应该在问题中包含它。 - jk.JSONP
响应。看起来像是直接的JSON
。如果是这种情况,你遇到了同源策略违规问题。 - jk.