views:

7

answers:

2

Hi. 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 browser adressbar something like that:

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

I got that content. What's wrong?

A: 

You'll need to use getJSONP if your getting data from another domain, it's part of the "same origin policy".

EDIT

Actually what Nick said, slap &callback=? on the end of your query string to invoke getJSONP.

ILMV
There is no `$.getJSONP()` :)
Nick Craver
Yeah I just thought that, edited :-) thanks
ILMV
+1  A: 

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.

Nick Craver