【问题标题】:Laravel Lumen 5.2 Cors Middleware not workingLaravel Lumen 5.2 Cors 中间件不工作
【发布时间】:2016-05-26 13:26:54
【问题描述】:

在 Laravel Lumen 5.1 中,我在我的 CorsMiddleware 中使用它:

public function handle($request, \Closure $next)
{
    $response = $next($request);
    $response->header('Access-Control-Allow-Methods', 'HEAD, GET, POST, PUT, PATCH, DELETE');
    $response->header('Access-Control-Allow-Headers',  $request->header('Access-Control-Request-Headers'));
    $response->header('Access-Control-Allow-Origin', '*');
    return $response;
}

但在 5.2 中它不再工作了。

如何在响应中返回适当的标头?

【问题讨论】:

    标签: laravel header cors lumen lumen-5.2


    【解决方案1】:

    将所有路由放入其中以启用 Web 中间件组:

    Route::group(['middleware' => ['web']], function () {
        // Here comes your routes
    });
    

    更新。

    要解决这个问题,请使用这个包:github.com/barryvdh/laravel-cors

    【讨论】:

    【解决方案2】:

    浏览器使用 OPTIONS 请求来检查您的端点上是否有任何 CORS 标头。这意味着,您需要首先处理这些飞行前 OPTIONS 请求,为它们提供正确的标头。

    在 Lumen/Laravel 中,您还需要将 CORS 中间件添加到与 CORS 资源相同的路由中,但使用 OPTIONS 方法请求:

    $app->options(
        'your/cors/uri',
        [
            'middleware' => 'cors', function() 
             function() { return response('', 200); }
        ]
    );
    

    遇到了同样的问题,希望对你有帮助:)

    【讨论】:

      猜你喜欢
      • 2017-09-10
      • 1970-01-01
      • 2020-03-08
      • 1970-01-01
      • 2018-03-24
      • 2016-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多