记一次后端拿不到自定义请求头的经历

背景:

公司项目用户账号密码登录,需要图形验证码,生成图形验证码的思路是

1:前端请求后台接口,获取图形验证码

2:后端生成验证码,并生成一个随机uuid,以uuid为key,code为值存入redis,后端以流的形式把生成的图形验证码写给前端,uuid放入响应头给前端

response.addHeader("CAPTCHA_CODE", uuid);
验证码校验思路:
1:用户输入验证码,前端发起get请求,code为参数,并带上获取验证码时后端返回的响应头
本地测试好使,放到测试环境出问题了,后端死活拿不到请求头....
解决思路:
1:首先觉得是预检请求的问题,于是后端加拦截器,拦截预检请求   结果:不行
2:打印收到的请求头,发现请求头上并没有东西,怀疑是网关过滤掉了,于是,,加日志,,排查,,然并卵   结果:不行
3:后来我想,不如换一种思路,改成post请求,校验时把请求头上的参数放在参数里,
绝对可以     结果:代码改完了还没测,发现问题了
4:本地没问题,为什么发布之后就有问题,不是跨域问题,那就是环境问题,
第一个要检查的就是nginx,因为本地没有nginx,服务器上有
结果:解决!!!
nginx里面有个underscores_in_headers 配置,默认是off,这个配置是默认忽略掉请求header里
面的"_"的,改成on即可,或者把请求头里别用"_"!!!!

 

破问题耽误一天时间!!!

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值