DEV Community

Cover image for [php-curtas] Resolvendo Cors Origins no Lumen
Tadeu Barbosa
Tadeu Barbosa

Posted on

3 1

[php-curtas] Resolvendo Cors Origins no Lumen

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;
    }
}
Enter fullscreen mode Exit fullscreen mode

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
 ]);
Enter fullscreen mode Exit fullscreen mode

Pronto! Agora sua aplicação poderá ser acessada por outras origins.
Espero ter ajudado, até a próxima!

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay