【问题标题】:ERR_EMPTY_RESPONSE error in authorization Laravel授权 Laravel 中的 ERR_EMPTY_RESPONSE 错误
【发布时间】:2020-05-01 20:53:47
【问题描述】:

我有一个使用 Laravel 的 Web 服务解决了 CORS Origin 问题,但下一个问题是具有授权标头的请求返回以下错误服务器。

选项https://sandbox.example.com/api/v1/用户/网络配置文件::ERR_EMPTY_RESPONSE

我目前正在使用 cloudflare,想知道这是 CDN 还是服务器上的其他东西。

【问题讨论】:

    标签: reactjs laravel axios cloudflare


    【解决方案1】:

    这是预检请求。 您需要允许 OPTIONS 请求。首先你需要创建 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;
            }
        }
    

    然后在数组$middleware中添加Http/Kernel.php:

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

    在此之后,所有类型为 OPTIONS 的请求都将返回带有标头的响应 200。

    【讨论】:

      猜你喜欢
      • 2018-09-26
      • 2018-02-19
      • 1970-01-01
      • 2021-03-05
      • 2019-01-29
      • 2019-01-12
      • 2017-04-25
      • 2020-01-05
      • 2021-11-30
      相关资源
      最近更新 更多