Search code examples
jqueryjsoncross-domainresponsewikipedia-api

No response from MediaWiki API using jQuery


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?


Solution

  • 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.