如何从axios发布响应中获取自定义标头?

时间:2020-07-29 11:24:57

标签: vue.js vuejs2 axios nuxt.js

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

enter image description here

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

enter image description here

我如何访问它?

已更新

将此添加到我的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

enter image description here

1 个答案:

答案 0 :(得分:1)

我认为您需要做的是:

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

'exposed_headers' => ['_msg'],

,您必须按照问题https://github.com/fruitcake/laravel-cors/issues/308#issuecomment-490969761

中的说明创建中间件

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

我希望它能起作用