Laravel无法通过nginx获取param标头

Clé*_*aud 3 nginx laravel laravel-5.3

我正在开发一个Laravel项目(API),我在请求标头中遇到了自定义参数问题.

我需要在请求标头中发送一个令牌,所以我只需api_token在我的请求中添加一个参数.

当我在我的本地配置时apache2,我可以在Laravel中获取我的标头请求参数$request->header('api_token'),但是当我在我的服务器上配置时nginx,我总是得到null

对我来说,nginx和头请求有问题,我该怎么办?

有任何想法吗 ?也许它不是来自nginx ......

Ris*_*ana 12

那是因为默认情况下Nginx不允许带有下划线的标头.您只需将标头参数更新为api-token:

$request->header('api-token');
Run Code Online (Sandbox Code Playgroud)

或者,您可以配置Nginx配置以允许带有下划线的标头.在您的server块之间的某处,添加如下underscores_in_headers指令:

server {
    ...
    underscores_in_headers on;
    ...
}
Run Code Online (Sandbox Code Playgroud)

另外,不要忘记重新加载Nginx配置.了解更多关于这个underscores_in_headers指令在这里.

希望这能解决您的问题.