【发布时间】:2021-05-28 00:59:33
【问题描述】:
页面 1 可以很好地加载到 iframe 中,但是当我尝试通过 JS 访问时出现此错误。
Uncaught DOMException: Blocked a frame with origin "https://domain1.com" from accessing a cross-origin frame(试图访问的框架在“https://domain2.com”)
我在两台服务器中都拥有完全访问权限,并且我已经尝试过使用 'X-Frame-Options' & header 'Access-Control-Allow-Origin' header,甚至试图删除 X-Frame-Options 标头。
我不知道还能做什么。
【问题讨论】:
-
X-Frame-Options表示是否允许浏览器显示 (i)frames 内的内容,Access-Control-Allow-Origin适用于跨域HTTP 请求。这些都与访问 iframe 文档中的元素没有任何关系 - 如果来源不同,Same Origin Policy 只会阻止您这样做。 -
好的,那我还能尝试什么?
-
您可以先正确解释一下您首先要解决的实际问题。然后我们也许可以判断,是否有其他方法,或者您想要的东西是否根本不可能开始。
-
好的,谢谢回复,每次嵌入站点更改其网址时,希望通过 iframe 获取嵌入页面的高度以更改 iframe 标签容器的高度。但是每次我想访问嵌入站点时,我都会收到此错误。
-
这是可能的,如果对方积极支持,你会需要他们的“帮助”。 iframe 必须通过
postMessage之类的方式向父页面报告自己的内容高度,然后父页面可以调整 iframe 元素的高度。请咨询您的小部件的提供商,他们是否提供类似的服务。