DEV Community

Thiago Luna
Thiago Luna

Posted on Edited on

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

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.

Thiago Luna - Linkedin

Top comments (24)

Collapse
 
miguelf03kai profile image
Miguel Fernande •

muito obrigado, parabéns.

Collapse
 
thiagoluna profile image
Thiago Luna •

De nada! Que bom que ajudou!

Collapse
 
mauriney profile image
Mauriney •

09 de abril de 2024 e foi a unica solução que funcionou pra mim em ambiente de desenvolvimento

Collapse
 
thiagoluna profile image
Thiago Luna •

Maravilha, @mauriney !!!

Collapse
 
agencia3w profile image
Paulinho •

Thiago, salvou aqui também, obrigado pelo conteúdo.

Collapse
 
thiagoluna profile image
Thiago Luna •

De nada!
Fico feliz em ter ajudado.

Collapse
 
ukaua profile image
Kauã Vinícius •

Cara muito obrigado kkkk, me salvou de todo tipo possível

Collapse
 
thiagoluna profile image
Thiago Luna •

De nada!
É um prazer poder ajudar.

Collapse
 
samuraipetrus profile image
Petrus Nogueira • • Edited

No Laravel 8 existe o fruitcake/laravel-cors instalado por padrão no projeto, acho válido analisar a documentação dessa tecnologia antes de partir para a solução exposta na publicação. github.com/fruitcake/laravel-cors

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 •

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

Collapse
 
ccorgozinho profile image
CCorgozinho •

Muito obrigado meu companheiro.

Tive de fazer o login simplesmente para agradecê-lo pela ajuda.

Após horas buscando pela net algo que pudesse me ajudar, você foi o salvador.

Ajudou um jovem iniciante.

Obrigado de verdade.

Collapse
 
thiagoluna profile image
Thiago Luna •

Que bom que conseguiu resolver o problema!
Obrigado pelo retorno e siga firme nos estudos. Em breve estará fera!

Collapse
 
billbarsch profile image
Bill Barsch • • Edited

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

Collapse
 
marcellopato profile image
Marcello Pato •

Aqui no meu dev Laravel 8 não funcionou...

Collapse
 
thiagoluna profile image
Thiago Luna •

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

Collapse
 
fabricioguima profile image
Fabrício Guimarães •

Como que eu leio seu guia? nao aparece nada aqui pra mim, apenas o título do seu guia

Collapse
 
thiagoluna profile image
Thiago Luna •

Olá, @fabricioguima . De repente surgiu um tal de Liquid Error, onde tive que reeditar o texto aplicando um markdown diferente.
Tudo certo com o texto agora.
Espero que já tenha conseguido resolver o problema do CORS por ai.
Abs.

Collapse
 
amandaxxkatariny profile image
AmandaKatariny •

Tbm não consegui

Collapse
 
kalecio profile image
Kalécio •

Me salvasse agora, show de bola

Collapse
 
thiagoluna profile image
Thiago Luna •

TMJ parceiro. Obrigado pelo retorno.