我使用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配置创建了一个主题。
是什么原因造成的?