http头authorization值格式错误_CORS 提示错误 header authorization

2020年11月05日 1Browse 0Like 0Comments Edit post

在使用 CORS 测试的时候,我们得到下面的错误提示:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8080/search/user. (Reason: header ‘authorization’ is not allowed according to header ‘Access-Control-Allow-Headers’ from CORS preflight response).
77e18227564c555dc53a3ef3331f6ee9.png

问题解决

如果你使用的是 Spring 进行 API 编写的话。

出现这个问题的原因在于你返回的 http 请求的 header Authorization 这个选项。

在你的过滤器中,你应该添加下面的一段内容:

httpServletResponse.setHeader("Access-Control-Allow-Headers", "Authorization, Origin, X-Requested-With, Content-Type, Accept");

需要注意的是,根据官方的文档中的说明 Access-Control-Allow-Headers: * 是可以使用通配符的。

但是 Authorization 的头不能使用通配符,必须单独列出。

因此,需要在 Spring API 返回的头中添加上面的代码。

上面的代码表示告诉前端 CORS 的设置,以避免出现跨域访问的问题。

2012369c1a3843b2e69c3dadc885366e.png

上面的配置,你可以在 Spring 的过滤器中进行配置。

当你配置成功后重启服务器,在进行跨域测试。

你会看到测试成功的提示:

ecc8c9bcb26635933b5a718b82615f07.png

同时在浏览器的网络调试部分,我们应该能够看到相应的头中也添加了 Authorization。

d5dfd84faa838436ac642c957ed34f49.png

跨域访问比较难调试的问题就是不同的地方有不同的错误,需要根据前端和后端同时来进行调试。但,浏览器的调试窗口也给了比较完整的提示。

按照浏览器的调试提示来调试就可以了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值