Refused to display 'url' in a frame because it set 'X-Frame-Options' to 'deny'.

说明:前端使用layui。tab嵌套iframe,在加入security之前并无异常。

springmvc 在整合spring security时,浏览器发送请求,出现


解决:在继承WebSecurityConfigurerAdapter的子类的覆盖方法configure(HttpSecurity)里面添加:

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



百度查找原因:

既然是在浏览器端发送请求时出的问题,那么先看一下请求信息,如图,看到下面图中圈出的地方,果然发现了

X-Frame-Options:DENY


首先我们看看 X-Frame-Options是什么?

X-Frame-Options是一个HTTP标头(header),用来告诉浏览器这个网页是否可以放在iFrame内;

X-Frame-Options: DENY     //表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
X-Frame-Options: SAMEORIGIN    //表示该页面可以在相同域名页面的 frame 中展示
X-Frame-Options: ALLOW-FROM http://caibaojian.com/   //表示该网页只能放在http://caibaojian.com//网页架设的iFrame内。

另外查了最新的资料,还可以直接通过meta标签来设置,不需要放在http头部请求中了。·

<meta http-equiv="X-Frame-Options" content="deny">

但是这种方式对我来说没起作用,目前还不知道原因。
那么从前端解决不行久从后端解决,如下图所示
既然是整合了spring security才出现的这个问题,那就从这里入手


sameOrigin() 会返回 HeadersConfigurer对象,那么,去看一下这个对象在官网上是怎么解释的。

首先,有三个方法


官网上对HeadersConfigurer的说明


很明显,该类设置了默认值为DENY。到此,问题解决!

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值