Eu tentei fetch
o URL de um site antigo e ocorreu um erro:
Fetch API cannot load http://xyz.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://abc' is therefore not allowed access.
If an opaque response serves your needs, set the request's mode to 'no-cors'
to fetch the resource with CORS disabled.
Entendi a mensagem e tentei fazer uma solicitação que retorna uma resposta opaca:
fetch("http://xyz", {'mode': 'no-cors'})
Ok, agora funciona ... mas não consigo ler. = \
Qual é o objetivo, então, de uma resposta opaca?
Status code
é sempre0
, como verificar se foi bem sucedido sestatus is never 200
?Respostas opacas não podem ser acessadas por JavaScript, mas você ainda pode armazená-las em cache com a API de cache e responder com elas no
fetch
manipulador de eventos em um trabalhador de serviço. Portanto, eles são úteis para tornar seu aplicativo offline, também para recursos que você não pode controlar (por exemplo, recursos em uma CDN que não define os cabeçalhos do CORS).fonte
Também há solução para o aplicativo Node JS. O CORS Anywhere é um proxy NodeJS que adiciona cabeçalhos CORS à solicitação em proxy.
O URL para proxy é literalmente retirado do caminho, validado e proxy. A parte do protocolo do URI com proxy é opcional e o padrão é "http". Se a porta 443 for especificada, o protocolo será padronizado como "https".
Este pacote não impõe restrições aos métodos ou cabeçalhos http, exceto cookies. Solicitar credenciais do usuário não é permitido. O aplicativo pode ser configurado para exigir um cabeçalho para proxy de uma solicitação, por exemplo, para evitar uma visita direta do navegador. https://robwu.nl/cors-anywhere.html
fonte
javascript é um pouco complicado para obter a resposta, eu a corrigi obtendo a API do back-end e depois chamando-a para o front-end.
fonte