Estou a uma dia tentando resolver um problema no Lumen e, agora que finalmente consegui resolver, resolvi trazer pra vocês!
Quem nunca teve problemas com CORS que atire a primeira pedra.
Depois de revirar toda a internet atrás de uma solução, tentar [e falhar miseravelmente] setar os headers na aplicação e tudo mais que você possa imaginar... Encontrei essa resposta no Stak Overflow.
Como resolver:
Criei um arquivo chamado CorsMiddleware
dentro do diretório app/Http/Middlewares
, com o seguinte conteúdo:
<?php
namespace App\Http\Middleware;
class CorsMiddleware
{
public function handle($request, \Closure $next)
{
if ($request->isMethod('OPTIONS')) {
$response = response('', 200);
} else {
$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;
}
}
Esse middleware irá retornar 200 caso o método requisitado seja OPTIONS
.
Em seguida basta registar o seu middleware no arquivo bootstrap/app.php
:
$app->middleware([
App\Http\Middleware\CorsMiddleware::class
]);
Pronto! Agora sua aplicação poderá ser acessada por outras origins.
Espero ter ajudado, até a próxima!
Top comments (0)