header的参数不能带下划线

移动端把一些公共参数放在了 header 了,

在 laravel 中使用

use IlluminateHttpRequest;
//这个是获取所有header信息
Request::header();
//这个是获取header里面的version参数值
Request::header('version');
这些是可以满足需求获取到参数的。

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

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

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

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

2又发现 header 中是不能带 中文 过来的,如果带 中文 过来后端在 header 头中是拿不到值的。

原因

  1. 在header里不要用 “_” 下划线,可以用驼峰命名或者其他的符号(如减号-)代替。nginx默认忽略掉下划线可能有些原因。
  2. 在nginx里的 nginx.conf文件中配置http的部分添加 : underscores_in_headers on;(默认值是off)
原文地址:https://www.cnblogs.com/matengfei123/p/9872485.html