自己項目遇到的一個問題,和我們的解決過程記錄吧。
技術框架是spring boot,前端將token放在header裏面,自定義一個參數,然後再後臺通過request.getHeader("參數")獲取;
1、我們在自己的本地和測試環境下是ok的,當使用測試環境的https://www.xxxxx/訪問的時候就出問題;後跟蹤日誌發現獲取到token也就是getHeader爲空了;
2、由於運維和我們是分開的,所以ng的配置修改不方便,我們自己找問題,由於使用ip地址完全沒問題,所以我們一直認爲是環境的配置問題,一個是https,一個是域名涉及到的NG;但在這之前我們先自己嘗試了以爲自己攔截器和過濾器的問題;然後發現一進來就沒有header的這個值;
3、修改NG的配置,根據網上的說明:
然後再次調用就行了;
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不能用_