我正在写一个小网页,它的目的是框架其他一些页面,只是为了将它们合并到一个浏览器窗口中,以便于查看。一些页面,我试图框架禁止被框架,并抛出“拒绝显示文档,因为显示禁止X-Frame-Options.”错误在Chrome。我知道这是一个安全限制(有充分的理由),并且无法更改它。
是否有任何替代的框架或非框架方法来在单个窗口中显示页面,而不会被X-Frame-Options报头绊倒?
我正在写一个小网页,它的目的是框架其他一些页面,只是为了将它们合并到一个浏览器窗口中,以便于查看。一些页面,我试图框架禁止被框架,并抛出“拒绝显示文档,因为显示禁止X-Frame-Options.”错误在Chrome。我知道这是一个安全限制(有充分的理由),并且无法更改它。
是否有任何替代的框架或非框架方法来在单个窗口中显示页面,而不会被X-Frame-Options报头绊倒?
当前回答
我几乎尝试了所有的建议。然而,唯一真正解决这个问题的是:
在PHP文件所在的文件夹中创建一个.htaccess文件。 将这一行添加到htaccess: 报头总是不设置x帧选项
通过来自另一个域的iframe嵌入PHP之后应该可以工作。
此外,你可以在你的PHP文件的开头添加:
header('X-Frame-Options: ALLOW');
然而,在我的情况下,这是不必要的。
其他回答
这就是解决办法!!
FB.Event.subscribe('edge.create', function(response) {
window.top.location.href = 'url';
});
这是唯一适用于facebook应用的方法!
我有一个类似的问题,我试图在一个iframe中显示我们自己网站的内容(作为一个带有Colorbox的lightbox样式的对话框),并且我们在源服务器上有一个服务器范围的“X-Frame-Options SAMEORIGIN”报头,防止它加载到我们的测试服务器上。
这似乎没有被记录在任何地方,但如果你可以编辑你试图iframe的页面(例如。,它们是你自己的页面),简单地发送另一个X-Frame-Options报头,任何字符串都禁用SAMEORIGIN或DENY命令。
如。对于PHP,放入
<?php
header('X-Frame-Options: GOFORIT');
?>
在页面的顶部会使浏览器将两者结合起来,从而导致页眉为
X-Frame-Options SAMEORIGIN, GOFORIT
...并允许您在iframe中加载页面。当初始的SAMEORIGIN命令设置在服务器级别时,这似乎可以工作,并且您希望在逐页情况下重写它。
祝你一切顺利!
编辑.htaccess如果你想从整个目录中删除X-Frame-Options。
并添加一行:Header always unset X-Frame-Options
[内容来自:克服“x帧选项禁止显示”
X-Frame-Options Allow-From https://..。如果使用Content-Security-Policy报头,则会被替换(并被忽略)。
这里是完整的参考资料:https://content-security-policy.com/
如果你试图在iframe中嵌入谷歌Map时遇到这个错误,你需要在源链接中添加&output=embed。