views:

27

answers:

2

How do I know if a server has JSONP turned on? It is not my server, but I try to access some information from the rendered html.

Thanks in advance.

A: 

The server has JSONP turned on if you can add callback to the URL:

http://example.com/api/get_info.js?callback=myfunc

and the server responds with your requested information in JSON-format, wrapped with your callback:

myfunc({
    /* json formatted data goes here */
});
Magnar
Actually, no. This will only work if the server is looking for `callback` being the callback parameter. The callback parameter can actually be anything.
Adhip Gupta
The standard is `callback`. For instance, it's what will work with the JSONP-support in jQuery. Of course it can be anything, but that's hardly helpful, is it?
Magnar
+1  A: 

For most servers, you can make a request in your browser to whatever JSON page/service they have and just add a callback function in the URL, for example if it's this:

http://example.com/getJson?var=something

Add the callback query parameter, like this:

http://example.com/getJson?var=something$callback=myFunction

The response instead of this (it will look like this if it doesn't support JSONP):

{ "thing": "value" .... }

Should look like this (again, if it supports JSONP):

myFunction({ "thing": "value" .... });
Nick Craver
Right, the operative word there is *most*. :-)
Adhip Gupta