仅在GET请求中缺少授权标头

时间:2018-11-12 11:16:33

标签: laravel http nginx authorization

我使用laravel和vue创建了一个应用程序,并托管在nginx上。

在发送Authorization标头时,除GET之外,所有请求类型都可以正常工作。

我有一条路由GET /reports,我无法在API中收到Authorization标头,但可以看到在网络中正确添加了标头。

奇怪的是,如果我将路由更改为POST,PUT,DELETE或PATCH,则该路由(例如POST /reports)可以正常工作。

在nginx配置中,没有GET请求的排除,所以我不知道是什么原因引起的。同样在本地也可以。

我的cors配置:

    $headers = [
        'Access-Control-Allow-Origin'      => '*',
        'Access-Control-Allow-Methods'     => 'POST, GET, OPTIONS, PUT, DELETE',
        'Access-Control-Allow-Credentials' => 'true',
        'Access-Control-Max-Age'           => '86400',
        'Access-Control-Allow-Headers'     => 'X-File-Upload, Content-Type, Authorization, Origin, Accept'
    ];

    if ($request->isMethod('OPTIONS'))
    {
        return response()->json('{"method":"OPTIONS"}', 200, $headers);
    }

    $response = $next($request);
    $response->headers->set('Access-Control-Allow-Origin', '*');
    $response->headers->set('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT, DELETE');
    $response->headers->set('Access-Control-Allow-Headers', 'Origin, Content-Type, Accept, Authorization');

    return $response;

我也尝试过更改原点,但是我没有任何cors错误。

Authorization header does not reach API only on GET request (nginx)我还为我的nginx配置创建了一个主题。

是什么原因造成的?

0 个答案:

没有答案