【问题标题】:Can you use Cross-Domain Ajax through a script on the other domain?您可以通过其他域上的脚本使用跨域 Ajax 吗?
【发布时间】:2011-05-12 04:45:24
【问题描述】:

这与其他问题类似,但我无法看到完全匹配的问题。抱歉,之前有人问过这个问题,但我找不到答案。

我知道,如果您在一个域上有一个脚本(比如 one.com/index.php 运行 one.com/script.js),那么您就不能使用 Ajax 连接到第三方域(比如连接到 two.com/ajax.php)。

如果您在另一个域上运行脚本(one.com/index.php 运行two.com/connect.js),然后two.com 上的脚本不会转到另一个域,情况是否也会如此?
换句话说,第三方域上的脚本是否能够使用 Ajax 连接到同一个第三方域?

对 Ajax 不太了解(只需要修改基本代码以使其适合我),所以我想我应该问一下。

更新

Furquan 的回答似乎不错,但该解决方案尚未经过测试(我将很快,并再次更新),我能够按照 Rudie 帖子中的链接找到 this page,这似乎描述了我如何可以在 PHP 中实现一个解决方案,而不必在第二个域上有一个脚本。 我感谢所有回答的人花时间这样做。

【问题讨论】:

    标签: javascript ajax cross-domain


    【解决方案1】:

    没有。从哪里加载.js 并不重要。连接 XHR 的来源很重要。这些天来,所有的CDN's 到处都是脚本,但主域是(并且应该是)运行脚本的域。

    如果您“拥有”这两个域,您可以查看https://developer.mozilla.org/en/http_access_control

    编辑
    嗯...我不认为我理解(​​或理解)...或者我?最重要的是:XHR 请求从哪个域开始,到哪里去。不重要的是:.js 文件位于何处。

    【讨论】:

    • 你的链接也指向developer.mozilla.org/En/Server-Side_Access_Control,它显示了问题是如何解决的,至少对我来说是这样。
    • header('Access-Control-Allow-Origin: *'); (来自上面的链接)似乎是我正在寻找的东西,或者如果 Furqan 是正确的,这意味着我没有什么要添加的,因为无论如何我都会使用外部脚本.
    【解决方案2】:

    是的,你可以像你在场景中提到的那样使用它,two.com/connect.js 将能够毫无问题地访问two.com。尽管还有其他方法可以达到相同的目的。

    【讨论】:

      【解决方案3】:

      不,脚本的位置无关紧要,它是当前页面的位置。您的两个示例都将具有相同的跨域限制。

      【讨论】:

        猜你喜欢
        • 2017-03-06
        • 1970-01-01
        • 1970-01-01
        • 2016-06-21
        • 1970-01-01
        • 2014-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多