【问题标题】:How to get custom header from HTTP response in Laravel 5?如何从 Laravel 5 中的 HTTP 响应中获取自定义标头?
【发布时间】:2017-04-28 08:17:22
【问题描述】:

我正在尝试从 Laravel 中的请求访问自定义标头。标头名称是“accessing_from”。列出 Laravel 中的所有标题,只给我“标准标题”,但我设置的标题不在列表中。检查浏览器网络选项卡,我可以看到标头已发送。所以我想知道如何从 Laravel 中访问它。

我正在使用 Angular2 通过默认的 http 服务发出请求。

Laravel 的 $response->header() 转储:

网络检查员的日志:

感谢任何人!

【问题讨论】:

  • 请向我们展示您的$request 的转储以及与您的 Web Inspector 一起发送的标头图片。
  • @Ohgodwy 用照片更新了问题
  • 如果你使用 Nginx,包含下划线 (_) 的 HTTP Headers 不会传输到服务器,除非没有明确设置 underscores_in_headers on;

标签: php laravel http angular laravel-5


【解决方案1】:

在 Laravel 5.8 中获取自定义标头。

这也应该适用于早期版本。

如果使用像X-Requested-With: XMLHttpRequest 这样的标头,您可能会注意到它会将其转换为HTTP_X_REQUESTED_WITH

这反过来又被转换为 header() 方法的小写版本。

request()->header('x_requested_with');

我建议使用Accessing-From: admin,它将添加apache 标头HTTP_ACCESSING_FROM。您将能够通过这样的标头函数访问它...

request()->header('accessing_from');

【讨论】:

    【解决方案2】:

    你试过简单的 php 吗?

    <?php
    // Replace XXXXXX_XXXX with the name of the header you need in UPPERCASE
    $headerStringValue = $_SERVER['HTTP_XXXXXX_XXXX'];
    

    完整答案: https://stackoverflow.com/a/541463/3548658

    文档说: https://laravel.com/api/5.3/Illuminate/Http/Request.html#method_header

    use Request;
    Request::header('accessing_from');
    

    【讨论】:

    • @HRLET,之前已经尝试过,不幸的是这两种方法都不起作用。
    【解决方案3】:

    您是在谈论获取参数还是什么?如果是这样,请使用:

    request()->accessing_from;
    

    你应该使用的标题:

    request()->header('accessing_from');
    

    对此的有效解决方案是daver 的答案(最后一个): Laravel get request header

    【讨论】:

    • 不,我愿意从请求中获取确切的标头,它不是参数
    • 如果request()-&gt;header('accessing_from'); 没有显示任何内容,您可能需要阅读daver 回答here
    • 尝试使用 request()->header('accessing_from') 访问标头返回一个空数组:(
    • 需要使用Accessing-From - 更新答案stackoverflow.com/a/59427256/372215
    猜你喜欢
    • 2015-10-18
    • 2020-04-01
    • 1970-01-01
    • 2013-02-09
    • 2016-05-27
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 2020-09-04
    相关资源
    最近更新 更多