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

Erro "No 'Access-Control-Allow-Origin' " em Http.get

codigo: https://pastebin.com/i4EFsk8b

Erro = "XMLHttpRequest cannot load http://localhost:8080/WebServiceSPPD/sppd/getListaEstacao. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access."

Se eu eu passar a url da API de cep, não ocorre erros. Quando passo a url da API que eu criei localmente usando JAVA não funciona

OBS: se eu acessar minha API via brownser ou pelo meu app android funciona normalmente

2 respostas
solução!

Por seguranca, o browser nao permite o acesso Ajax completo a requests de outros dominios (outras origens). Só é permitido acessar o conteudo do Ajax se for mesmo dominio ou se a URL que voce esta chamando permitir.

Essa permissao é dada atraves de um cabecalho que o servidor precisa incluir, chamado Access-Control-Allow-Origin que faz parte do CORS - Cross Origin Resource Sharing.

Se você notar a API de CEP inclui esse cabeçalho: Access-Control-Allow-Origin: * o que indica que qualquer um pode chama-la (ao inves do asterisco, podemos restringir a um conjunto especifico de hosts). Entao faca sua API Java incluir esse header na resposta que tudo vai funcionar.

E funciona na App Android pq ela tem um modelo se seguracna diferente dos browsers. Os browsers nao permitem esse tipo de request pq na web aberta isso é bem perigoso. Mas numa App é permitido, por isso funciona.

Vlw, Sérgio funcionou !!!