非jsonp支持的站点中的JSONP

时间:2013-01-29 06:21:46

标签: json jsonp

我有一个要求,我必须从另一台服务器获取数据..服务器只支持JSON而不支持JSONP。如何使用JSONP从服务器获取数据?

我在jquery中这样做..

还有其他解决办法吗?

请帮帮我......

1 个答案:

答案 0 :(得分:1)

JSONP存在的原因是为了解决Javascript的跨域问题。这基本上意味着不允许浏览器中的javascript与不在Web应用程序所在域的Web服务进行通信。

JSONP使这种跨域集成成为可能,因为您的浏览器和服务器具有“协议”。你给它一个回调,它会给你结果,包含在回调中。它希望通过javascript调用,因此涉及的安全风险较小。

示例:

You call http://www.abccorp.com/index.php?callback=somevalue

没有JSONP,你会回来:     {some:'value'}

使用JSONP:

somevalue({ some: 'value' });

如果服务器不支持此回调,则无法使用(仅使用javascript)。

我建议使用服务器端编程语言,以便为您进行此调用。

例如,您有一个名为index.php的PHP文件。您的javascript将使用AJAX JSON请求调用此文件。反过来,它将调用您需要的服务器,获取结果,并将它们转发到javascript。由于你没有使用javascript,这个服务器端编程不需要像javascript那样的回调(或协议)。