我正在尝试使用AJAX(XMLHttpRequest)实现对Wikipedia API的简单请求。如果我在Firefox的地址栏中键入url,则会得到一个整齐的XML,在那儿不费吹灰之力。但是,使用以下命令调用完全相同的网址:
// 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);
返回空响应。根据FireBug,我得到200 OK响应,但是内容只是空的。
我怀疑我可能在GET http请求的标头上缺少某些内容。
救命!(谢谢!)
WikipediaAPI确实支持JSONP。您的查询字符串将变成这样:
http://en.wikipedia.org/w/api.php?action=query&format=json&callback=test&prop=langlinks&lllimit=500&titles=kaas
但是您必须构建jsonp处理程序(或可以使用自己喜欢的库来执行此操作),从您选择的xml切换到json输出格式,并创建回调函数以解析结果并在页。