今天和移動端對接的時候,移動端把一些公共參數放在了 header 了,
然而在 laravel 中使用
\Illuminate\Http\Request; //這個是獲取所有header信息 Request::header(); //這個是獲取header里面的version參數值 Request::header('version');
這些是可以滿足需求獲取到參數的。
但是偏偏這次出問題了。新加的參數怎么都是取不到,還以為是什么緩存問題,或者是哪里去除了,又或者帶參數有個數限制。
結果調試了半天發現是移動端傳參數的時候是不能在命名參數中帶 _ (下划線的),
如 app_version,book_id 這樣的是有問題的
需要去除下划線,或換成 - 都是可以的!
遇見這個坑記錄一下,希望大家別踩啦!
-------------------------------------------------------------------
ps:今天調試中又發現 header 中是不能帶 中文 過來的,如果帶 中文 過來后端在 header 頭中是拿不到值的。
初步測試是這樣,如果有問題請大家指正哈!
-----------------------------------------------------------------
后續發現是Nginx中配置限制了這個,
解決方法:
1:配置中http部分 增加underscores_in_headers on; 配置
2:用減號-替代下划線符號_,避免這種變態問題。nginx默認忽略掉下划線可能有些原因。