1

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

我在 jquery 中做它..

还有其他解决方案吗?

请帮助我..

4

1 回答 1

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 那样的回调(或协议)。

于 2013-01-29T06:37:11.477 回答