Laravel 无法通过 nginx 获取请求中的参数 header

标签 laravel nginx laravel-5.3

我正在处理一个 Laravel 项目(一个 API),但我在请求 header 中的自定义参数有问题。

我需要在请求头中发送一个 token ,所以我只需添加一个参数 api_token在我的请求中。

当我在我的本地配置了 apache2 ,我可以在 Laravel 中使用 $request->header('api_token') 获取我的 header 请求参数,但是当我在配置了 nginx 的服务器上 tr 时,我总是得到null
对我来说,nginx 和 header 请求有问题,我该怎么办?

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

最佳答案

那是因为默认情况下 Nginx 不允许带有下划线的 header 。您可以简单地将 header 参数更新为 api-token :

$request->header('api-token');

或者您可以配置您的 Nginx 配置以允许带有下划线的 header 。在您的 server 之间的某个地方阻止,添加 underscores_in_headers像这样的指令:
server {
    ...
    underscores_in_headers on;
    ...
}

另外不要忘记重新加载您的 Nginx 配置。阅读更多相关信息 underscores_in_headers指令 here .

希望这能解决您的问题。

关于Laravel 无法通过 nginx 获取请求中的参数 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40589378/

相关文章:

php - 如何为 laravel dompdf 中的每一页添加页码?

javascript - 如何在 vue.js 2 上获取响应 ajax?

javascript - 识别vuejs组件的多个容器

javascript - 如何在 chart.js 中从最高到最低对数据进行排序

Nginx:登录多个条件

java - 无法建立安全连接,因为此站点使用不受支持的协议(protocol)

jquery - jquery 中的 Blade 产量

mysql - Laravel 与附加数据透视表的多对多关系

linux - 用top判断Linux进程内存

php - 如何修复它在 laravel 5.3 中调用字符串的成员函数 diffForHumans()