laravel中取header头部信息取不到的相关问题

今天和移动端对接的时候,移动端把一些公共参数放在了 header 了,

然而在 laravel 中使用

\Illuminate\Http\Request;  

//这个是获取所有header信息
Request::header();

//这个是获取header里面的version参数值
Request::header('version');

这些是可以满足需求获取到参数的。

但是偏偏这次出问题了。新加的参数怎么都是取不到,还以为是什么缓存问题,或者是哪里去除了,又或者带参数有个数限制。

结果调试了半天发现是移动端传参数的时候是不能在命名参数中带 _ (下划线的)

如 app_version,book_id 这样的是有问题的

需要去除下划线,或换成 - 都是可以的!

遇见这个坑记录一下,希望大家别踩啦!

-------------------------------------------------------------------

ps:今天调试中又发现 header 中是不能带 中文 过来的,如果带 中文 过来后端在 header 头中是拿不到值的。

初步测试是这样,如果有问题请大家指正哈!

-----------------------------------------------------------------

2018年11月1日

后续发现是Nginx中配置限制了这个,还是自己知道的太少了!!!

解决方法:

1:配置中http部分 增加underscores_in_headers on; 配置 
2:用减号-替代下划线符号_,避免这种变态问题。nginx默认忽略掉下划线可能有些原因。 

引用:http://zhaoshijie.iteye.com/blog/2371440