【问题标题】:How to get custom headers from axios post response?如何从 axios 发布响应中获取自定义标头?
【发布时间】:2020-07-29 11:24:57
【问题描述】:

我使用 nuxt/axios 和 laravel 作为我的后端。在我来自 laravel 的回复中,我发送了一个名为 _msg 的自定义标头,但我无法访问它。在我的console.log(response) 我只得到这个:

但在我的浏览器网络中,我得到了标题:

如何访问它?

更新

将此添加到我的 laravel 中间件中: 这是一个示例,如果请求来自经理和管理员

<?php

namespace App\Http\Middleware;

use Closure;
use App\Traits\UtilsTrait;

class ManagerPlus
{
    use UtilsTrait;
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
//        return $next($request);
        if($this->isMoreManager()){
            $request->panelType = $this->addPanelType();
            $response = $next($request);

            $response->headers->set('Access-Control-Expose-Headers', 'Content-Disposition');
            return $response;
        }
        return $this->permissionDenied();
    }
}


曝光后更新:

我按照我的 laravel/fruitcake 设置和中间件进行了操作,这是我从 axios 获得的新标头。但仍然没有收到我的_msg

【问题讨论】:

  • 也许是 CORS 的事情 stackoverflow.com/a/37931084/181766
  • 我以前读过这个,但不知道该怎么做!!是否必须在 LaravelNuxt 上进行配置?顺便说一句,我遇到了cors 问题并在我的 laravel 上安装了一个包
  • 配置应该在服务器端(lavarel)进行。在 laravel 中您似乎需要创建一个中间件 github.com/fruitcake/laravel-cors/issues/…
  • @jjchiw 我在 laravel 中间件中公开了我的自定义标头,但仍然无法访问我的 nuxt/axios 。不应该对我的 nuxt 做任何事情吗?
  • 你能更新问题吗

标签: vue.js vuejs2 axios nuxt.js


【解决方案1】:

我认为你需要做的是:

如果您使用包https://github.com/fruitcake/laravel-cors,您将拥有config/cors.php,并且您应该在其中添加

'exposed_headers' =&gt; ['_msg'],

您必须按照问题https://github.com/fruitcake/laravel-cors/issues/308#issuecomment-490969761 中的说明创建中间件

$response-&gt;headers-&gt;set('Access-Control-Expose-Headers', '_msg');

我希望它有效

【讨论】:

  • 是的,我使用fruitcak,我在cors.php 中设置了exposed_headers' =&gt; ['_msg'],正如您在我的问题更新中看到的,我也在中间件中使用了set header。仍然没有得到_msg 标头。我在浏览器网络中得到它,我在邮递员中得到它,而不是在 nuxt 中!我认为我的 axios 或 nuxt 配置有问题
  • 你解决了吗?是因为在 nginx 中的 http 标头下划线需要额外的配置吗? nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/… 忘了这个....
  • 不,还没有解决!! T_T。我的背不在服务器上。它在另一台笔记本电脑上,Windows OS 与我共享并充当主机。
  • $response-&gt;headers-&gt;set('Access-Control-Expose-Headers', '_msg'); 我认为这是中间件中需要的那一行
猜你喜欢
  • 2020-08-10
  • 1970-01-01
  • 2016-05-27
  • 2017-09-15
  • 1970-01-01
  • 2019-09-07
  • 1970-01-01
  • 2015-10-18
  • 2017-04-28
相关资源
最近更新 更多