Etag не появляется в заголовке в Laravel API - PullRequest
0 голосов
/ 08 октября 2018

Я использую Laravel 5.7 для создания API (аутентифицированного с помощью Passport) с некоторым промежуточным программным обеспечением для отправки ETag в заголовок.Промежуточное программное обеспечение выглядит следующим образом:

public function handle($request, Closure $next)
{
    if (!$request->isMethod('get')) {
        return $next($request);
    }

    $response = $next($request);

    $currentEtag = DB::table('etag')->first()->etag;

    $response->setEtag($currentEtag);

    return $response;
}

Но когда я делаю запрос GET к контроллеру с этим промежуточным программным обеспечением, в заголовках ответа нет ключа ETag.Я знаю, что вызывается промежуточное программное обеспечение (вставляя в него команду dd).Мои заголовки ответа выглядят так:

Date: Mon, 08 Oct 2018 10:18:21 GMT
Server: Apache/2.4.25 (Debian)
Cache-Control: private, must-revalidate
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
Vary: Authorization
Cache-Control: max-age=0, no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Transfer-Encoding: chunked
Content-Type: application/json

РЕДАКТИРОВАТЬ:

Я также использую промежуточное программное обеспечение laravel-cors .В конфигурационном файле у меня есть:

'supportsCredentials' => false,
'allowedOrigins' => ['*'],
'allowedOriginsPatterns' => [],
'allowedHeaders' => ['*'],
'allowedMethods' => ['*'],
'exposedHeaders' => ['ETag'],
'maxAge' => 0,
...