您可以通过其他域上的脚本使用跨域Ajax吗?

时间:2011-05-11 11:18:48

标签: javascript ajax cross-domain

这与其他问题类似,但我无法看到完全匹配。对不起,如果之前有人询问,我找不到答案。

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

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

不太了解Ajax(只是足以修改基本代码对我有用),所以我想应该问。

更新

Furquan的答案似乎很好,但解决方案尚未经过测试(我很快,并再次更新),我能够跟随Rudie的帖子中的链接找到this page,这似乎描述如何在PHP中实现解决方案,而无需在第二个域上安装脚本。 我感谢所有回答他们花时间的人。

3 个答案:

答案 0 :(得分:3)

没有。加载.js的位置无关紧要。重要的是XHR的连接来自哪里。目前所有CDN's的脚本都在这里,但主域是(也应该是)脚本运行的域。

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

修改
嗯......我不认为我理解(​​或理解)......或者我?最重要的是:XHR请求在哪个域上开始,以及它在哪里开始。不重要的是:.js文件位于何处。

答案 1 :(得分:1)

是的,您可以像在方案中提到的那样使用它,two.com/connect.js将能够毫无问题地访问two.com。虽然可以有其他方法来实现同样的目标。

答案 2 :(得分:0)

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