Query Wikipedia's API using AJAX (XMLHttpRequest)

泄露秘密 提交于 2019-12-18 02:48:10

问题


I am trying to implement a simple request to Wikipedia's API using AJAX (XMLHttpRequest). If I type the url in the address bar of Firefox, I get a neat XML, no sweat there. Yet, calling the exact same url with:

// this is my XMLHttpRequest object
httpObjectMain.open("GET", "http://en.wikipedia.org/w/api.php?action=query&format=xml&prop=langlinks&lllimit=500&titles=kaas", true);
httpObjectMain.send(null);

returns an empty response. According to FireBug, I get a 200 OK response, but the content is just empty.

I suspect I might be missing something on the header of the GET http request.

Help! (and thanks!)


回答1:


The Wikipedia API does support JSONP. Your query string'll become something like this:

http://en.wikipedia.org/w/api.php?action=query&format=json&callback=test&prop=langlinks&lllimit=500&titles=kaas

But you'll have to build the jsonp handler (or you can use your favorite library to do it), switch to json output format from the xml you choose and create the callback function to parse the result and do the stuff you need on the page.




回答2:


The browser will not allow you to send an XHR to another domain other than the one the page is on. This is for security purposes.

One way around this that I have seen is to setup a proxy on the domain the page is hosted on that will pass requests through to the actual api server. See http://ajaxpatterns.org/Cross-Domain_Proxy



来源:https://stackoverflow.com/questions/2374377/query-wikipedias-api-using-ajax-xmlhttprequest

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!