今天项目中出现一个用 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/

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐