2011-05-11 45 views
0

这与其他问题类似,但我无法看到完全匹配。对不起,如果这之前已被问及,我无法找到答案。您可以通过其他域上的脚本使用跨域Ajax吗?

我知道如果您在一个域上有脚本(例如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中实现解决方案,而不必在第二个域上创建脚本。 我感谢所有为此付出努力的人。

回答

1

是的,你可以像你在场景中提到的方式使用它,two.com/connect.js将能够访问two.com没有任何问题。尽管可以通过其他方式来实现。

3

不,不要紧,.js从何处加载。它关系到XHR连接的来源。现在,所有的CDN's脚本都遍布全球,但主要的域名是(并且应该是)脚本运行的域名。

如果你“自己”的两个领域,你可以看看https://developer.mozilla.org/en/http_access_control

编辑
嗯......我不认为我的理解(或理解)......还是我?最重要的是:XHR请求在哪个域上启动,以及它到达哪里。不重要的是:.js文件位于何处。

+0

您的链接也指向https://developer.mozilla.org/En/Server-Side_Access_Control,它显示了如何解决问题,至少对我而言。 – 2011-05-11 20:30:37

+0

太好了。你介意与我们分享你的解决方案吗? – Rudie 2011-05-11 20:59:58

+0

'header('Access-Control-Allow-Origin:*');'(从上面的链接)似乎是我正在寻找的,或者如果Furqan是正确的,这意味着我没有额外的补充,因为我是反正要使用外部脚本。 – 2011-05-11 21:30:11

0

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