No response from MediaWiki API using jQuery

diazath picture diazath · Oct 6, 2010 · Viewed 15.1k times · Source

I've tried to get some content from Wikipedia as JSON:

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

But I got nothing in response. If I paste to the browser's adress bar, something like

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&titles=jQuery&format=json

I get the expected content. What's wrong?

Answer

Nick Craver picture Nick Craver · Oct 6, 2010

You need to trigger JSONP behavior with $.getJSON() by adding &callback=? on the querystring, like this:

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

You can test it here.

Without using JSONP you're hitting the same-origin policy which is blocking the XmlHttpRequest from getting any data back.