我有一个要求,我必须从另一台服务器获取数据..服务器只支持JSON而不支持JSONP。如何使用JSONP从服务器获取数据?
我在jquery中这样做..
还有其他解决办法吗?
请帮帮我......
答案 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那样的回调(或协议)。