Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Ler html via Http.get sem erro de CORS

Preciso ler o conteúdo em outro site para iterar sobre esse html, mas estou obtendo o famigerado erro de CORS, já que o Http faz uma requisição ajax e o servidor não está preparado para origem cruzada. Exemplo:

Requisição cross-origin bloqueada: A política de mesma origem (Same Origin Policy) impede a leitura do recurso remoto em http://br.advfn.com/bolsa-de-valores/bmf/WDOF17/historico. (Motivo: o cabeçalho CORS 'Access-Control-Allow-Origin' não está presente).

Usando Angular 2, é possível fazer uma requisição síncrona simulando uma requisição do browser? Ideias e sugestões serão bem vindas, obrigado.

3 respostas

Para superar o cors a outra ponta, no caso o site que vc está tentando baixar o html, precisa estar configurado.. se não estiver, não vai rolar... Se vc tiver alguma api aí, vc pode fazer com que sua api consulte o site e retorne o html para vc.

solução!

É exatamente o que o Alberto disse. O servidor tem que habilitar CORS. Se é seu, consulte a documentação específica. Se é de terceiros...não vai rolar.

Ou pode fazer como o Alberto sugeriu. Api no backend não tem restrição. Sua api no back acessa o endereço problemático e devolve para sua app. Novamente, algo especifico da sua linguagem em uso.

Sim, quanto à necessidade de ter o CORS habilitado no servidor de terceiros eu já sabia, e isso não vai rolar. Pensei que haveria uma forma de fazer uma requisição completa pelo Angular, já que consigo receber os dados se tentar usar um RESTClient qualquer, mas pelo visto somente temos chamadas Ajax.

Thanks guys!