如何知道服务器是否启用了 JSONP?

11

如何确定服务器是否开启了JSONP?这不是我的服务器,但我尝试从呈现的HTML中访问一些信息。

谢谢提前。

3个回答

13

对于大多数服务器,您可以在浏览器中向其JSON页面/服务发出请求,并在URL中添加回调函数,例如:

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

添加callback查询参数,如下所示:

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

如果不支持JSONP,则响应将如下所示(与此有所不同):

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

如果支持 JSONP,应该看起来像这样:

myFunction({ "thing": "value" .... });

没错,这里的关键词是“大多数”。 :-) - Adhip Gupta
第二个 URL 应该是 http://example.com/getJson?var=something&callback=myFunction,而不是 $ - Hamish Downer
@Hamish - 确实应该这样,是我打错了,已经修正了!谢谢 :) - Nick Craver

2
服务器开启了JSONP,如果您可以在URL中添加callback,则可以使用它。
http://example.com/api/get_info.js?callback=myfunc

服务器以JSON格式返回您请求的信息,并使用您的回调进行包装响应:
myfunc({
    /* json formatted data goes here */
});

实际上不是这样的。只有在服务器正在寻找callback作为回调参数时,此方法才有效。而回调参数实际上可以是任何东西。 - Adhip Gupta
标准是“回调函数(callback)”。例如,在jQuery中支持JSONP时它就能发挥作用。当然,它可以是任何东西,但这并没有什么帮助,不是吗? - Magnar

-3
你正在尝试访问的网络服务的API文档已经被阅读。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接