【问题标题】:Best way to make a cross-site request with JavaScript?使用 JavaScript 发出跨站点请求的最佳方式?
【发布时间】:2009-06-24 15:18:35
【问题描述】:

在跨站点 XHR API 得到广泛支持之前,通过 JavaScript 发出跨站点请求的最佳方式是什么?我一直在使用 iFrame,但它们可能会有点乱。有没有更好的办法? (更好,我的意思是更容易使用。)

另外,我更喜欢看纯 JavaScript 代码,而不是 jQuery 等框架。我正在使用自己的迷你框架,我不想查看他们是如何做到的。

编辑:我忘了说,我无法控制目标服务器,所以我不能使用动态<script>标签方法。

【问题讨论】:

    标签: javascript ajax cross-domain


    【解决方案1】:

    我知道有两种常见的方法。一种是在您的服务器上使用代理,基本上是一个为您获取数据的 php 文件。

    另一个是使用动态脚本标签。更多信息在这里:

    http://www.hunlock.com/blogs/Howto_Dynamically_Insert_Javascript_And_CSS

    此幻灯片的第 9 页也有一些信息:

    http://bulletproofajax.com/workshop/slides/04formats.html

    【讨论】:

    • 我无法控制目标服务器,所以第二种方法行不通。但是代理方法+1,没想到。
    • 不要尝试一些黑客行为,使用代理。如果您害怕有人无用地使用代理,请尽可能将其锁定,以便它只能获取您需要获取的内容。
    【解决方案2】:

    你也可以看看 easyxss (http://code.google.com/p/easyxss/wiki/InvokingRemoteMethods) 。只需几行代码,您就可以获得跨域工作的方法调用。

    【讨论】:

      【解决方案3】:

      如果您尝试获取的数据是 JSON,请查看 JSONP。它通过将<script> 标记注入引用远程服务器上的脚本的DOM 来工作。另一端的服务器返回一些 json/javascript 样式的响应,调用带有数据的“回调”函数。基本上远程脚本看起来像这样:

      callbackfunc({'somedata':'testing'});
      

      callbackfunc 是您在脚本中定义的函数。

      【讨论】:

        猜你喜欢
        • 2011-07-10
        • 2015-01-28
        • 2010-11-03
        • 2023-04-05
        • 2020-02-27
        • 1970-01-01
        • 1970-01-01
        • 2015-02-23
        • 2022-01-24
        相关资源
        最近更新 更多