背景:新版本修改了个功能是在老版本的基础上做的,同一个接口,需要兼容老版本,因此让前台在header中封装了 version版本号,client_type 客户端类型,根据这两个字段判断接口要走的逻辑
本地使用前台给的IP包测试OK,代码上到测试环境,总是不走新分支,打印参数日志发现没有 client_type 字段,情况很诡异,同一个包在本地OK但是上测试就凉凉...
解决:让IOS在header中封装了新的参数 clientType 字段,与client_type一同传递,发现clientType是可以获取到的,问题定位到,由于key中包含 "_" 符号,随即怀疑nginx搞鬼了
百度之得一下结论:
nginx默认会忽略header中带下划线的key....
处理方法:
1:配置中http部分 增加underscores_in_headers on;
2:变化key 不使用下划线