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