2011-01-27 53 views
1

我正在通过位于bar.domain.com的代理访问API。我通过位于foo.bar.domain.com上的脚本访问它。所以当然,我碰到了same origin policyDocument.domain不能正常工作,因为我期待

在foo.bar.domain.com上加载的第一个脚本的顶部,我设置了document.domain = "bar.domain.com"

在检查器中,如果我在此行之后立即暂停执行并检查document.domain,它将返回bar.domain.com。和.ajax之前的暂停一样,并且在所有的javascript都运行之后也一样。

不幸的是,我仍然得到:Origin http://foo.bar.domain.com is not allowed by Access-Control-Allow-Origin.

我希望我可以给一个活生生的例子,唉,我被要求不要:/

我如何能解决或调试这个任何想法?非常感谢您提供的任何帮助。

+0

你仍然在同一协议? Domain.com实际上是一个.com域名?你在尝试使用哪些浏览器?你不转换端口?你能显示一些代码吗? – 2011-01-27 17:42:07

+0

我们的确在使用相同的协议和端口。我为我的代码使用requireJS,所以这里是受影响的部分的一个非常简化的模型:http://jsfiddle.net/WSEue/ – 2011-01-27 17:48:34

回答

1

我觉得网站需要设置document.domain为“bar.domain.com”,因为这两个页面必须明确表示他们愿意互操作。不要紧,“bar.domain.com”页面已经具有相同的字符串document.domain —它仍然必须明确设置它。

Here是一个MDC页面,有一些解释。