Laravel Lumen 5.2 Cors Middleware не работает

В 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 ответа

Разместите все свои маршруты внутри, чтобы включить группу веб-промежуточного программного обеспечения:

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

Upd.

Чтобы решить эту проблему, используйте этот пакет: https://github.com/barryvdh/laravel-cors

Браузеры используют OPTIONS просит проверить, есть ли у вас какие-либо заголовки CORS на вашей конечной точке. Это означает, что вам нужно сначала обработать эти запросы перед полетом, предоставив им правильные заголовки.

В Lumen / Laravel вам необходимо добавить промежуточное программное обеспечение CORS также к тому же маршруту, что и ресурс CORS, но запрашивается методом OPTIONS:

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

Была такая же проблема, поэтому я надеюсь, что это поможет вам:)

Другие вопросы по тегам