sameoringin设置下iframe读取动态HTML被拒问题

Ellen_2007 2017-03-21 11:27:36
有个测试主site,www.mytest.com, 非常简单就有一个空白页,里面内嵌了一个iframe
<div id="container">
Hello World!!!
</div>
<div>
<iframe style="border: none;height: 100%;width:100%;position: fixed;top: 50px; background:white" src="http://anothersite.com"></iframe>
</div>


在这个anothersite.com中设置了sameoringin
<add name="Content-Security-Policy" value="script-src 'self' '; frame-ancestors 'self' www.mytest.com;" />


在mytest.com的iframe中,一切访问都很正常,但是,当访问到anothersite.com某一个页面时,无法get回数据,有如下报错信息
Uncaught DOMException: Blocked a frame with origin "http://anothersite.com" from accessing a cross-origin frame.

原因是这个特殊的页面动态加载了一些html
var test = '<div class="mystyle"><span>mythings</span></div> ......';


在主站中设置过document.domain = mytest.com
console.log("iframeData",document.querySelector('iframe').contentDocument.domain);
console.log("hostName", window.location.hostname);

打印出来的结果一样,都是www.mytest.com

在anothersite.com中设置过
<add name="Access-Control-Allow-Origin" value="*" />

然并卵。

有workround可以解决这个问题吗?
...全文
315 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
document.domain 只能跨同一个顶级域名的和其子域名,不能夸不同的顶级域名 你要跨顶级域名可以看这个:javascript通过iframe加载同源代理页面实现顶级域跨域操作 或者用html5的postMessage对象 https://www.baidu.com/baidu?wd=html5%B5%C4postMessage
  • 打赏
  • 举报
回复
引用 3 楼 Ellen_2007 的回复:
补充一下,主页面mytest.com与othersite.com没有任何交互,所有操作以及响应都是是othersite.com自己完成的,只是othersite.com自己访问到一个在js中动态加载html的语句中会报以上错误。 如果没有动态加载html,一切request都是没有问题的。
自己检查动态加载的html是否加载了其他js,js访问了父页,代码都已经报错了肯定是出现跨域访问了
Ellen_2007 2017-03-21
  • 打赏
  • 举报
回复
补充一下,主页面mytest.com与othersite.com没有任何交互,所有操作以及响应都是是othersite.com自己完成的,只是othersite.com自己访问到一个在js中动态加载html的语句中会报以上错误。 如果没有动态加载html,一切request都是没有问题的。
Ellen_2007 2017-03-21
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
document.domain 只能跨同一个顶级域名的和其子域名,不能夸不同的顶级域名 你要跨顶级域名可以看这个:javascript通过iframe加载同源代理页面实现顶级域跨域操作 或者用html5的postMessage对象 https://www.baidu.com/baidu?wd=html5%B5%C4postMessage
不是主site发送的请求,所有request都是在iframe里嵌的othersite.com发送并接收的,mytest.com就是摆了一个iframe,它本身没有任何逻辑。

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧