今天项目中出现一个用 iframe 嵌套帆软报表页面出现 Refused to display in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'
于是就记录下来。
百度了很久,大致分为
X-Frame-Options是什么?
X-Frame-Options是一个HTTP标头(header),用来告诉浏览器这个网页是否可以放在iFrame内。
例如:
X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
X-Frame-Options: ALLOW-FROM http://caibaojian.com/
第一个例子告诉浏览器不要(DENY)把这个网页放在iFrame内,通常的目的就是要帮助用户对抗点击劫持。
第二个例子告诉浏览器只有当架设iFrame的网站与发出X-Frame-Options的网站相同,才能显示发出X-Frame-Options网页的内容。
第三个例子告诉浏览器这个网页只能放在 http://caibaojian.com// 网页架设的iFrame内。
那我们出现了这个怎么办?
百度到的解决方案为:
<meta http-equiv="X-Frame-Options" content="deny">
这个是不可以实现的,所以不用试了。
还有在java代码中加入这个的
@RequestMapping("/index")
public String index(HttpServletResponse response){
response.addHeader("x-frame-options","SAMEORIGIN");
return "manager/index";
}
还是不行,最终的解决方案是去帆软报表的服务器上面把安全设置里面的X-Frame-Options关掉了才解决,开始想着翻越过这个问题,最终发现这个是安全机制,翻越不了。
转自:https://blog.csdn.net/zhangyang_2015/article/details/96482610
相关链接:https://blog.csdn.net/qq_37193537/article/details/87086279/