2009-12-15 79 views
4

我们有含含页面共享一个认证的cookie与它的父页面的iframe的网页。例如,iframe页面位于域foo.domain.com上,并且包含iframe的页面位于foo2.domain.com上。两者都从domain.com共享cookie。身份认证的伟大工程,但问题是与ASP.NET在IE7中,我们总是得到一个JavaScript错误:ScriptResource.axd访问被拒绝。跨域iframe

访问被拒绝。

的ScriptResource.axd

我们使用ASP.NET 3.5中,我们使用Ajax控件工具包也(最新版本3.0.30930.0)。这个问题不会发生在IE8上。 Firefox和Chrome也没有问题。

任何人都遇到过这个问题之前?

回答

1

如果有一个DNS重定向IE7可以有问题,例如如果http://site.domain.com确实是http://www.domain.com/site,则透明DNS重定向在IE7中存在问题,但不包括您提到的其他浏览器。 IE7将其视为跨域脚本并阻止...您只能获得拒绝访问。

这种情况下,或重定向或不同的域相似的地方?如果你可以测试主页面只是domain.com/你会得到错误? IE7对待孩子的方式不同于兄弟姐妹。

+0

是的,听起来像xdomain问题。 –

+1

我有同样的问题,有没有更改源应用程序代码的快速解决方案? ...像一些IIS配置或其他? –

0

在JavaScript中,你可能需要更改文档域中。有可能IE7一直在查看服务器级别的域名:foo.domain.com!= foo2.domain.com。 IE8等可能以* .domain.com的面值取文档域。

这里有一个快速相关的博客文章:http://jszen.blogspot.com/2005/03/cross-domain-security-woes.html

要复制代码,将两个以下内容添加到两个页面应该再次滚动。

<script type="text/javascript"> 
    document.domain="example.com"; 
</script>