【问题标题】:JSONP in non jsonp supported site非 jsonp 支持站点中的 JSONP
【发布时间】:2013-01-29 14:37:11
【问题描述】:

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

我是在 jquery 中做的..

还有其他解决办法吗?

请帮帮我..

【问题讨论】:

    标签: json jsonp


    【解决方案1】:

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

    【讨论】:

    • 好的。但我需要了解 phonegap 是如何进行跨域请求的?因为它完全是 js..
    • 请为您的问题添加其他背景。有点难以理解您具体要做什么。
    猜你喜欢
    • 1970-01-01
    • 2013-05-07
    • 2017-02-13
    • 2014-05-07
    • 2013-01-18
    • 2018-11-25
    • 2013-08-26
    • 2016-09-03
    • 2015-06-15
    相关资源
    最近更新 更多