NG、域名、https 获取不到header的自定义参数的值

自己项目遇到的一个问题,和我们的解决过程记录吧。

技术框架是spring boot,前端将token放在header里面,自定义一个参数,然后再后台通过request.getHeader("参数")获取;

1、我们在自己的本地和测试环境下是ok的,当使用测试环境的https://www.xxxxx/访问的时候就出问题;后跟踪日志发现获取到token也就是getHeader为空了;

2、由于运维和我们是分开的,所以ng的配置修改不方便,我们自己找问题,由于使用ip地址完全没问题,所以我们一直认为是环境的配置问题,一个是https,一个是域名涉及到的NG;但在这之前我们先自己尝试了以为自己拦截器和过滤器的问题;然后发现一进来就没有header的这个值;

3、修改NG的配置,根据网上的说明:

 underscores_in_headers on; 
然后再次调用就行了;

4、最后我们发现其他项目也是同样的配置和使用方式,但是在没有3中配置的情况下也可以,我们就深究原因发现:

            我们的参数名称是"xx_token",重点来了-----------在request.getHeader("xx_token"),NG不能用_,用-代替也行;_是NG的关键字会被转意;

重要的事情说三次:

在request.getHeader("xx_token"),NG不能用_  ;

在request.getHeader("xx_token"),NG不能用_

在request.getHeader("xx_token"),NG不能用_
 

Guess you like

Origin blog.csdn.net/lgxzzz/article/details/121564816