Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sobre CORS #1

Open
lagden opened this issue May 18, 2019 · 0 comments
Open

Sobre CORS #1

lagden opened this issue May 18, 2019 · 0 comments

Comments

@lagden
Copy link
Owner

lagden commented May 18, 2019

Se você é um programador FRONTEND e está com problemas de CORS, a culpa é do programador BACKEND.

Thiago Lagden

O que é CORS?

É um mecanismo que usa cabeçalhos adicionais para informar o navegador que o aplicativo web tenha permissão para acessar recursos selecionados de um servidor com uma origem diferente.

Veja a documentação completa no MDN.

Exemplo

Neste repositório temos uma API (Backend) e temos um formulário (Frontend) que consome a API.

Instalação

Faça o clone do projeto:

$ git clone [email protected]:lagden/cors-exemplo.git cors
$ cd cors

Abra cada pasta (back, front) em um terminal diferente e execute os commandos:

$ npm i
$ npm start

image


O nosso backend está rodando na porta 3000 e o nosso frontend na porta 3131, ou seja, teremos problema de CORS

Abra o frontend (http://[::1]:3131/) no seu navegador, o devtools e faça um login.

image


Aconteceu como esperado!
Agora, abra o código do back: cors/back/src/index.js, remova // da linha 14 e salve

Screen Recording 2019-05-18 at 07 40 PM

Se ainda estiver rodando, o nodemon dará o restart para você.

image


Vamos voltar para o navegador e disparar o login novamente:

image

wallah!!! Work like a charm

WTF?

Mas o que aconteceu?! Magia negra?!
Não, apenas colocamos no backend a permissão de acesso para o endereço do frontend.

Observe que agora no cabeçalho de resposta do backend existe a propriedade:

Access-Control-Allow-Origin: http://[::1]:3131

image

Resumo

Problema de CORS tem que ser ajustado no backend adicionando os cabeçalhos necessários.
Existe esse site que pode ajudar: https://enable-cors.org/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant