同一域上的 iframe 的权限被拒绝 - Apache vhost cfg 问题?

发布于 2024-10-15 11:40:47 字数 861 浏览 3 评论 0原文

我正在使用 javascript 操作页面上的 iframe,该页面从与执行操作的页面相同的域加载内容。事实上,在 iframe src 中,我使用的是这样的相对路径:

<iframe id="myiframe" src="/foo/bar.html" .../>

页面在 iframe 中显示没有问题,但是当我尝试使用 javascript 访问 iframe 时,出现此错误:

权限被拒绝 http://mysite.com 获取属性 窗口.文档来自 http://www.mysite.com

我知道 http://www.mysite.comhttp://mysite.com 被视为不同的域,无论它们实际存在于何处,但我从未配置任何内容来使用 www.子域。所以我不知道 www 部分来自哪里。我最好的猜测是我需要更改虚拟主机配置中的某些内容。我正在使用 Apache 2,并且有一个非常简单的虚拟主机配置文件:

<VirtualHost *>
    ServerName mysite.com
    DocumentRoot /path/to/mysite.com/www
</VirtualHost>

有什么想法吗?

I'm using javascript to manipulate an iframe on a page which loads content from the same domain as the page doing the manipulation. In fact in the iframe src I am using a relative path like this:

<iframe id="myiframe" src="/foo/bar.html" .../>

The page displays in the iframe without problems, but when I try to access the iframe using javascript, I get this error:

Permission denied for
http://mysite.com to get property
Window.document from
http://www.mysite.com.

I know http://www.mysite.com and http://mysite.com are considered different domains regardless of where they physically exist, but I've never configured anything to use the www. subdomain. So I have no idea where the www part is coming from. My best guess is that I need to change something in my vhosts configuration. I'm using Apache 2 and I have a very simple virtual host config file:

<VirtualHost *>
    ServerName mysite.com
    DocumentRoot /path/to/mysite.com/www
</VirtualHost>

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

德意的啸 2024-10-22 11:40:47

"www.mysite.com" != "mysite.com"

跨框架/窗口通信需要在同一协议+主机名+端口上

"www.mysite.com" != "mysite.com"

cross frame/window communication needs to be on the same protocol+hostname+port

黯淡〆 2024-10-22 11:40:47

正如 Nick 指出< /a>,问题是域不匹配。如果您位于同一域,则可以执行以下操作:

  1. 在将在 iframe 中加载的页面上打开 Web 控制台。
  2. 输入 document.domain
  3. 确保包含 iframe 的页面上的 document.domain 设置为相同的值。

As Nick noted, the issue is a domain mismatch. If you're on the same domain, you can do this:

  1. Open your web console on the page you'll load in the iframe.
  2. Enter document.domain
  3. Make sure document.domain on the page containing the iframe is set to the same value.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文