【发布时间】:2012-10-30 01:36:13
【问题描述】:
我在域上有一个页面:
http://main.mydomain.com/frame.cfm 包含一个 iframe, 加载域http://www.anotherdomain.com。
这个页面http://www.anotherdomain.com有一个脚本引用http://sub.mydomain.com/somescript.js
这个 somescript 是一个类似于 google Analytics 的跟踪脚本,它会随 www.anotherdomain.com 的每个请求一起加载。
在某个阶段,www.anotherdomain.com页面中的脚本http://sub.mydomain.com/somescript.js会尝试调用window.top.aFunction(); or parent.aFunction();
让父窗口做一些事情。
我知道 X-Frame-Options 和 Access-Control-Allow-Origin 标头并尝试了两者,但是当我在 www.anotherdomain.com 上的 iframe 中浏览时,我在 Firebug 中收到一条错误消息,告诉我:
Error: Permission denied to access property 'relocate'window.top.aFunction();
在 main.domain 站点上的 web.config 中,我有以下规则:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="http://sub.mydomain.com" />
<add name="X-Frame-Options" value="ALLOW-FROM http://sub.mydomain.com" />
</customHeaders>
</httpProtocol>
我认为应该授予 sub.mydomain.com 访问 main.mydomain.com 上的脚本的权限。
我正在我的电脑上本地使用除 www.anotherdomain.com 以外的所有域进行测试,并提供主机参考。
知道我在这里缺少什么吗?
【问题讨论】:
标签: javascript iframe same-origin-policy