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
 
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
 
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
 
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
 
billbarsch profile image
Bill Barsch • Edited

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

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
 
marcellopato profile image
Marcello Pato

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

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
 
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
 
ikarofox profile image
IkaroFox

Tks soldier, this solution work on laravel 8, at least for me .

Collapse
 
thiagoluna profile image
Thiago Luna

Very cool! Thanks for your feedback.
Let's go further!