Laravel Lumen 5.2 Cors Middleware无法正常工作

时间:2016-02-15 15:07:00

标签: laravel header cors lumen lumen-5.2

在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中它不再起作用了。

如何在响应中返回相应的标题?

2 个答案:

答案 0 :(得分:1)

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

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

<强> UPD。

要解决此问题,请使用此程序包:github.com/barryvdh/laravel-cors

答案 1 :(得分:1)

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

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

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

有同样的问题,所以我希望这可以帮助你:)