IFrame出Refused to display 'URL' in a frame because it set 'X-Frame-Options' to 'DENY'

最近在写一个springboot+springsecurity Demo,页面以iframe形式来加载页面。
然后浏览器就报错了。

Refused to display 'http://localhost:8080/sys/user' in a frame because it set 'X-Frame-Options' to 'deny'.

error.png

百度 “X-Frame-Options”看到一下内容,链接https://developer.mozilla.org/zh-CN/docs/Web/HTTP/X-Frame-Options

使用 X-Frame-Options

X-Frame-Options 有三个值:

DENY

表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。

SAMEORIGIN

表示该页面可以在相同域名页面的 frame 中展示。

ALLOW-FROM uri

表示该页面可以在指定来源的 frame 中展示。

换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。另一方面,如果设置为 SAMEORIGIN,那么页面就可以在同域名页面的 frame 中嵌套。

链接中有解决方法,但是明显和我要的不一样。弄明白了X-Frame-Options 是什么意思,并且以前也没遇见这个问题,大概觉得问题可能是springsecurity拦截了。于是尝试寻找security的配置文件有没有类似方法,果然找到:

http.headers().frameOptions().sameOrigin();

问题解决。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容