我试图从Wikipedia中获取一些内容作为JSON:
$.getJSON("http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&titles="+title+"&format=json", function(data) { doSomethingWith(data); });
但是我没有任何回应。如果我粘贴到浏览器的地址栏,类似
http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&titles=jQuery&format=json
我得到了预期的内容。怎么了?
您需要$.getJSON()通过添加&callback=?查询字符串来触发JSONP行为,如下所示:
$.getJSON()
&callback=?
$.getJSON("http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&titles="+title+"&format=json&callback=?", function(data) { doSomethingWith(data); });
您可以在这里进行测试。
如果不使用JSONP,您将遇到同源策略,该策略阻止XmlHttpRequest取回任何数据。