【问题标题】:AJAX: overcome same origin policyAJAX:克服同源策略
【发布时间】:2011-07-20 08:17:03
【问题描述】:

在实施 AJAX 时我们如何克服同源策略?

【问题讨论】:

标签: ajax


【解决方案1】:

通常,这是通过在服务器上实现JSONP 脚本生成来完成的,以便生成的脚本在加载和执行后调用您的回调。

基本上您需要做的是添加脚本元素(将src 设置为您的源网址)。服务的script 应该对您提供的回调执行函数调用(通过 URL 参数发送)。

一些 Ajax 框架支持这种开箱即用的通信,例如jQuery.

还有一些公开可用的服务,支持 JSONP Ajax 通信,例如Twitter(通过callback参数)。

【讨论】:

    【解决方案2】:

    一种方法是 AJAX 在您的站点上创建一个动态页面,该页面向外部站点发出某种 XMLHTTP 请求。这将从服务器的角度获取外部页面,而不是用户。

    您永远不能从客户的角度使用本机脚本访问外部页面/站点。

    【讨论】:

      【解决方案3】:

      为了绕过同源策略,你应该创建一个代理,然后通过代理发送请求......

      查看详细解答here

      点击这里查看Script for proxy setting

      附加说明,我认为 firefox 3.5 及更高版本会自动绕过 ajax 的同源策略..

      【讨论】:

        【解决方案4】:

        一个选项 - 如果您要访问的服务器提供它 - 是使用 JSONP

        【讨论】:

          【解决方案5】:

          有很多方法可以解决这个问题。如上所述,最简单的方法是在代码中使用 JSONP。

          另一种方法是使用称为 CORS 代理替代品的东西。您可以点击here了解更多。

          您甚至可以将 AJAX 与 YQL 或 jQuery 一起使用。你可以点击here看看怎么做

          希望对您有所帮助!

          【讨论】:

            猜你喜欢
            • 2012-08-12
            • 2014-03-23
            • 1970-01-01
            • 2012-08-22
            • 2014-07-23
            • 2011-07-28
            • 2012-07-10
            • 2011-03-27
            • 1970-01-01
            相关资源
            最近更新 更多