ERR_EMPTY_RESPONSE ошибка в авторизации Laravel - PullRequest
1 голос
/ 15 января 2020

У меня есть веб-служба с Laravel, которая решает проблему CORS Origin , но следующая проблема заключается в том, что запросы с заголовками авторизации возвращают следующий сервер ошибок.

OPTIONS https://sandbox.example.com / api / v1 / user / net profile :: ERR_EMPTY_RESPONSE

В настоящее время я использую cloudflare и хочу узнать, является ли это CDN или что-то еще на сервере.

1 Ответ

0 голосов
/ 15 января 2020

Это предполетные запросы. Вам необходимо разрешить запрос ОПЦИИ. Сначала вам нужно создать промежуточное ПО CORS

<?php

    namespace App\Http\Middleware;

    use Closure;

    class Cors
    {
        public function handle($request, Closure $next)
        {
            $headers = [
                'Access-Control-Allow-Methods'=> 'POST, GET, OPTIONS, PUT, DELETE',
                'Access-Control-Allow-Headers'=> 'X-Requested-With, Content-Type, Accept, Origin, Authorization',
                'Access-Control-Allow-Origin' => '*'
            ];

            if($request->getMethod() === 'OPTIONS') {
                // The client-side application can set only headers allowed in Access-Control-Allow-Headers
                return \response('', 200, $headers);
            }

            $response = $next($request);
            foreach($headers as $key => $value)
                $response->header($key, $value);
            return $response;
        }
    }

, затем добавить в Http / Kernel. php в массив $ middleware:

protected $middleware = [
        // other middlewares
        Cors::class
    ];

После этого все запросы с типом OPTIONS будут возвращать ответ 200 с заголовками.

...