BrasilAPI / cep-promise

Busca por CEP integrado diretamente aos serviços dos Correios, ViaCEP e outros (Node.js e Browser)
MIT License
2.88k stars 316 forks source link

CORS (de novo) - Preflight: Redirect is not allowed for a preflight request. #149

Closed welderlourenco closed 4 years ago

welderlourenco commented 4 years ago

Olá, estou tendo um problema dificil de debugar. Utilizava Webpack, porém, o mesmo acontece incorporando o script do cdn mencionado na documentação. Em todos as chamadas cep() que faço, recebo um erro de cors preflight...

Mensagens de erro no console:

Access to fetch at 'https://proxier.now.sh/https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente' from origin 'http://meusitelocal.com.br' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.

Access to fetch at 'https://proxier.now.sh/https://viacep.com.br/ws/14940000/json/' from origin 'http://meusitelocal.com.br' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.

Uncaught (in promise) CepPromiseError: Todos os serviços de CEP retornaram erro.
    at new r (https://cdn.jsdelivr.net/npm/cep-promise/dist/cep-promise.min.js:1:4716)
    at P (https://cdn.jsdelivr.net/npm/cep-promise/dist/cep-promise.min.js:1:3546)

Aba Network:

Screenshot from 2019-11-30 09-29-59

Todos os requests possuem o status 308. Não entendo pois o proxy veio para resolver o problema de CORS, como pode ser que isso acontece?

Observe o header 'location' do status 308 do ViaCep... não sei se significa algo. Screenshot from 2019-11-30 09-38-53

Obrigado desde já pela ajuda.

lucianopf commented 4 years ago

Bom dia, peço desculpas pelo ocorrido, dado a blackfriday o serviço começou a tomar erro de rate limit e acabou ficando fora do ar.

Já estou trabalhando pra consertar e lançar uma versão mais moderninha que aguenta uma porrada maior 🙏

Assim que consertar o problema dou notícias aqui! 😬

welderlourenco commented 4 years ago

Boa tarde Luciano. Obrigado pelo trabalho. De qualquer forma, achei prudente desenvolver uma integração server-side para consulta de cep, mesmo que para uso em ultimo caso.

filipedeschamps commented 4 years ago

Show @lucianopf ! Eu estou um pouco afastado do repo aqui por conta da playlist do jogo, mas assim que terminar (e não falta muito) volto para cá.

Uma das coisas que eu estava pensando era construir um serviço de cep também com o Now, mas que vai guardando de forma persistente as consultas. Cada retorno com sucesso, guarda e salva em algum Redis da vida ou algo assim, e com uma data de validade.

Mas dai a sacada está aqui: Após essa data de validade expirada, a request que vier em seguida retorna instantaneamente o dado que já estava persistido (o expirado mesmo) mas como a data estava expirada, isso desencadeia uma tentativa de atualização do dado na camada de persistência. Se conseguir, atualiza e renova a data de validade. Se não conseguir, não faz nada (não delta o dado, deixa ele expirado) para que a próxima request desencadeie esse mesmo processo de novo, até uma hora conseguir.

samerjamal81 commented 4 years ago

Bom dia, peço desculpas pelo ocorrido, dado a blackfriday o serviço começou a tomar erro de rate limit e acabou ficando fora do ar.

Já estou trabalhando pra consertar e lançar uma versão mais moderninha que aguenta uma porrada maior

Assim que consertar o problema dou notícias aqui!

Boa tarde @lucianopf , alguma previsão para retornar o funcionamento?

lucianopf commented 4 years ago

Bom dia, peço desculpas pelo ocorrido, dado a blackfriday o serviço começou a tomar erro de rate limit e acabou ficando fora do ar. Já estou trabalhando pra consertar e lançar uma versão mais moderninha que aguenta uma porrada maior Assim que consertar o problema dou notícias aqui!

Boa tarde @lucianopf , alguma previsão para retornar o funcionamento?

Acabei de abrir um PR que corrige por hora o problema, vou aguardar o @filipedeschamps revisar pra saber se devemos seguir com a solução =)

Novamente, perdão pelo downtime @samerjamal81 =/

filipedeschamps commented 4 years ago

Pessoal, o @lucianopf fez um fix que está na mais recente versão: cep-promise@3.0.8

image

samerjamal81 commented 4 years ago

@filipedeschamps e @lucianopf eu utilizo o cdn e pra mim ainda não está funcionando. Agradeço o retorno!

Pessoal, o @lucianopf fez um fix que está na mais recente versão: cep-promise@3.0.8

image

lucianopf commented 4 years ago

@samerjamal81 , vc ta usando a cdn.jsdelivr.net, correto? 🤔

Me parece que eles tão atrasados pra atualizar qual a "current" version pra ser servida 😞

Pra forçar a utilização da última versão vc pode alterar a url que consome a lib pra apontar pra versão 3.0.8

A url https://cdn.jsdelivr.net/npm/cep-promise@3.0.8/dist/cep-promise.min.js ta resolvendo pra versão mais nova que corrige os problemas da anterior 😬

filipedeschamps commented 4 years ago

Pessoal, o @lucianopf acabou de lançar uma nova versão que remove o proxier do Viacep. Peço que utilize a versão 3.0.9. Vou fechar a issue por enquanto, mas caso o problema continue vamos reabrir e o plano de fazer um serviço próprio de cep continua, eu preciso apenas engatar umas coisas no canal para colocar esse projeto no ar 👍