【发布时间】:2013-01-29 14:37:11
【问题描述】:
我有一个要求,我必须从另一台服务器获取数据。该服务器仅支持 JSON,不支持 JSONP。如何使用 JSONP 从服务器获取数据?
我是在 jquery 中做的..
还有其他解决办法吗?
请帮帮我..
【问题讨论】:
我有一个要求,我必须从另一台服务器获取数据。该服务器仅支持 JSON,不支持 JSONP。如何使用 JSONP 从服务器获取数据?
我是在 jquery 中做的..
还有其他解决办法吗?
请帮帮我..
【问题讨论】:
JSONP 存在的原因是为了绕过 Javascript 的跨域问题。这基本上意味着不应允许浏览器中的 javascript 与与您的 Web 应用程序不在同一个域中的 Web 服务进行通信。
JSONP 使这种跨域集成成为可能,因为您的浏览器和服务器有一个“协议”。你给它一个回调,它会给你结果,包含在那个回调中。它希望通过 javascript 调用,因此涉及的安全风险较小。
例子:
You call http://www.abccorp.com/index.php?callback=somevalue
如果没有 JSONP,您将返回: {一些:'价值'}
使用 JSONP:
somevalue({ some: 'value' });
如果服务器不支持此回调,则不可能(仅使用 javascript)。
我建议使用可以帮助您完成此调用的服务器端编程语言。
例如,您有一个名为 index.php 的 PHP 文件。您的 javascript 将使用 AJAX JSON 请求调用此文件。反过来,它会调用您需要的服务器,获取结果,并将它们转发到 javascript。由于您没有使用 javascript,因此这种服务器端编程不需要像 javascript 那样的回调(或协议)。
【讨论】: