我在域上有一个页面:
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 之外的所有域进行测试,并使用主机参考。
知道我在这里缺少什么吗?