DEV Community

loading...

Resolvendo problema de Access-Control-Allow-Origin (CORS) no Laravel

thiagoluna profile image Thiago Luna ・1 min read

Quando estamos desenvolvendo APIs RESTFULL, é comum esbarrarmos com erro de CORS do tipo
Erro CORS

Esse bloqueio se da por conta do protocolo HTTP e precisamos resolver.

Existem várias soluções na internet, como alterar o .htaccess, instalar pacotes como o barryvdh/laravel-cors entre outros.

A solução que compartilho com vocês é bem simples e resolveu o meu problema no Laravel 6.
Vamos lá!

1- Crie um novo Middleware

php artisan make:middleware Cors

2- Adicione neste novo Middleware, localizado em app/Http/Middleware/Cors.php, o seguinte:
Dentro do método handle

public function handle($request, Closure $next)
    {
        return $next($request)
             //Acrescente as 3 linhas abaixo
            ->header('Access-Control-Allow-Origin', "*")
            ->header('Access-Control-Allow-Methods', "PUT, POST, DELETE, GET, OPTIONS")
            ->header('Access-Control-Allow-Headers', "Accept, Authorization, Content-Type");
    }

3- Edite o arquivo app\Http\Kernel.php da seguinte forma:
Dentro de $middleware acrescente o middleware que acabou de criar:

protected $middleware = [
        \App\Http\Middleware\TrustProxies::class,
        ...
        ...
        \App\Http\Middleware\Cors::class, //acrescente essa linha
    ];

4- Teste novamente sua aplicação e vida que segue!

Tem muito conteúdo bom na internet explicando sobre CORS, porque acontece isso, n maneiras de resolver. Então, quis trazer um conteúdo curto e direto ao ponto, pois nosso prazo anda bem curto para as entregas, né?!

Agora, vamos voltar a codar porque a sprint está quase acabando.

Um abraço e até o próximo direto ao ponto.

Discussion (6)

pic
Editor guide
Collapse
maykel131 profile image
Maykel Developer

vc é demais cara. muito bom seu post, tinha dias buscando o problema achando que era configuração no front. ai busquei um post ai ele disse que o problema era no back ai dei com seu post e deu tudo certo

Collapse
thiagoluna profile image
Thiago Luna Author

Que bom que conseguiu resolver o problema!
Obrigado pelo feedback.

Collapse
kalecio profile image
Kalécio

Me salvasse agora, show de bola

Collapse
thiagoluna profile image
Thiago Luna Author

TMJ parceiro. Obrigado pelo retorno.

Collapse
billbarsch profile image
Bill Barsch • Edited

só vim agradecer, perfeito, funcionou de imediato!
(obs: funcionou no laravel 8!)

Collapse
thiagoluna profile image
Thiago Luna Author

Eu que agradeço pelo feedback e o valeu por avisar que funciona no laravel 8 também.