当前位置:   article > 正文

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

前端传了token 后端拿不到

前言: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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/978729
推荐阅读
相关标签
  

闽ICP备14008679号