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)