【发布时间】:2011-01-29 23:53:38
【问题描述】:
我正在使用 javascript 来操作页面上的 iframe,该页面从与执行操作的页面相同的域加载内容。事实上,在 iframe src 中,我使用的是这样的相对路径:
<iframe id="myiframe" src="/foo/bar.html" .../>
页面在 iframe 中显示没有问题,但是当我尝试使用 javascript 访问 iframe 时,我收到此错误:
权限被拒绝 http://mysite.com获取财产 Window.document 来自 http://www.mysite.com.
我知道http://www.mysite.com 和http://mysite.com 被视为不同的域,无论它们实际存在于何处,但我从未配置任何东西来使用 www。子域。所以我不知道 www 部分来自哪里。我最好的猜测是我需要更改我的虚拟主机配置中的某些内容。我正在使用 Apache 2,并且我有一个非常简单的虚拟主机配置文件:
<VirtualHost *>
ServerName mysite.com
DocumentRoot /path/to/mysite.com/www
</VirtualHost>
有什么想法吗?
【问题讨论】:
-
可能是在 DNS 服务器上声明的 CNAME/A 记录,将 *.mysite.com 指向 .mysite.com 更多:en.wikipedia.org/wiki/CNAME_record 您可以在 www.mysite 上的所有流量上添加重定向.com 到 mysite.com 在您的应用程序中,甚至在 javascript 中;)
-
我不确定重定向如何解决浏览器的安全问题,因为域名不匹配可能会引发跨站脚本攻击。我知道我可以通过修改源以允许另一个域来解决症状,但我只是不明白第二个域首先来自哪里。
标签: javascript html ajax apache vhosts