部署到服务器后前端传递的token后端接收不到的问题

文章讲述了在SpringBoot和Vue项目中,使用Nginx做反向代理时,前端传递的带下划线的token被Nginx默认丢弃的问题。解决方法包括替换下划线为中划线或在Nginx配置中启用处理带有下划线的HTTP头。
摘要由CSDN通过智能技术生成

前言:springboot+vue的一个项目,使用了nginx做反向代理

问题:前端传递的token,后端死活都拿不到,导致请求都被拦截器拦截下来,返回未登录的状态码,前端传递的token名字是tt_token,在本地运行的时候是完全没问题的(本地没用nginx做代理),甚至在postman上测试也是可以接收到token的,但是部署到服务器上时(用了nginx做代理),后端就接收不到了。

原因:原来nginx会默认丢弃带有下划线的请求头,下面贴一段官网的解释

Missing (disappearing) HTTP Headers?
If you do not explicitly set underscores_in_headers on;, NGINX will silently drop HTTP headers with underscores (which are perfectly valid according to the HTTP standard). This is done in order to prevent ambiguities when mapping headers to CGI variables as both dashes and underscores are mapped to underscores during that process.

翻译过来就是:NGINX将静默地丢弃带有下划线的HTTP标头,这样做是为了防止在将头映射到CGI变量时出现歧义,因为在该过程中,短划线和下划线都映射到下划线。

解决办法(2选1即可):
1.将请求头统一用中划线代替,例如tt_token改为tt-token
2.在nginx的配置文件中添加这一行代码:underscores_in_headers on;

nginx官网中列出的一些常见的问题以及解释:
https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls

  • 17
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一言^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值