使用jQuery没有来自MediaWiki API的响应

dia*_*ath 13 jquery json response cross-domain wikipedia-api

我试图从维基百科获取一些内容作为JSON:

$.getJSON("http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&titles="+title+"&format=json", function(data) {
    doSomethingWith(data);
});
Run Code Online (Sandbox Code Playgroud)

但我没有得到任何回应.如果我粘贴到浏览器的地址栏,就像是

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&titles=jQuery&format=json
Run Code Online (Sandbox Code Playgroud)

我得到了预期的内容.怎么了?

Nic*_*ver 30

您需要$.getJSON()通过添加&callback=?查询字符串来触发JSONP行为,如下所示:

$.getJSON("http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&titles="+title+"&format=json&callback=?", function(data) {
    doSomethingWith(data);
});
Run Code Online (Sandbox Code Playgroud)

你可以在这里测试一下.

如果不使用JSONP,您就会遇到阻止XmlHttpRequest获取任何数据的同源策略.

  • 非常感谢你制作这么简单的小提琴.我已经打了几个小时,你简单的东西让我点击.谢谢. (3认同)