4
respostas

Duvida CORS Filter

Olá pessoas, Estou com duvida em relação ao CORS filter, por mais que pareca que a duvida não tem haver com o curso mas, para entender o cenário completo. Estou com minha aplicação em angular e estou fazendo uma tela de login, seguindo o conceito mostrado no curso com o acess-token gerado pelo backend e instalando a dependência do JWT-decode. Meu backend está em java e quando eu coloco a url do servico REST para ser consumida tanto pelo POSTMAN para teste e no navegador o backend recebe a requisição e da a resposta como esperado. Mas utilizando o angular, recebo a seguinte mensagem

Access to XMLHttpRequest at 'http://localhost:8080/contexto/api/v1/menu/' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Acredito que a mensagem seja para implementar o filtro de CORS no backend mas, o mesmo já está implementado no backend e mesmo assim a mensagem persiste. Segue alguém tiver alguma ideia agradeço muito ajuda

4 respostas

Você poderia acompanhar as requisições que estão ocorrendo no DevTools do seu browser?

Vê se ele está enviando uma requisição do tipo OPTIONS, esse método, basicamente 'pergunta' ao backend quais os verbos http estão liberados.

Olá kevin, Estou utilizando o chrome e verificando na aba network a requisição está com o método OPTIONS...e agora fiquei um pouco mais confuso pois, na service quando chamo o objeto HTTP para realizar a requisição ao backend se utilizo o método get a requisição não deveria ser via GET??

Boa tarde, Eu consegui contornar o problema utilizando um proxy (proxy.conf.js) o qual ajustando o package.json para que o node execute da seguinte forma

ng serve --proxy-config proxy.conf.js

Ai pergunto é uma boa pratica utilizar esse arquivo? ou deviria pesquisar um pouco mais para resolver o problema?

Cara, nunca precisei utilizar esse arquivo de proxy não ^^.

Quando você pergunta:

utilizo o método get a requisição não deveria ser via GET?

Sim, mas antes o client 'pergunta' ao seu backend quais os métodos disponíveis. Por exemplo, se seu GET está permitido via backend.

Posta como está a sua configuração de cors no backend pra que eu possa te ajudar melhor :)