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); }
]
);
Была такая же проблема, поэтому я надеюсь, что это поможет вам:)