1
resposta

Consulta dinâmica - hellp

Ao executar o código como a instrutora orienta, código abaixo.

async function buscaEndereco(cep) {
    try {
        var consultaCEP = await fetch(`https://viacep.com.br/ws/{cep}/json/`);
        var consultaCEPConvertida = await consultaCEP.json();
        if (consultaCEPConvertida.erro) {
            throw Error('CEP não existente!');
        }
        console.log(consultaCEPConvertida);
        return consultaCEPConvertida;
    } catch (erro) {
        console.log(erro);
    }
}

var cep = document.getElementById('cep'); //criou a variavel cep e atribuiu a ela uma pesquisa no html inteiro a procurar pelo id cep.
cep.addEventListener("focusout", () => buscaEndereco(cep.value)); /* defini um ouvinte de eventos, o focusout é um evento que ocorre 
quando a pessoa clica na parte de fora dele, ou seja ao escrever o CEP ela clicou naquele campo e ele está com foco ativo, após 
escrever qualquerlugar que ela clicar vai tirar o focu isso é focusout.Quando ele acontece, chama o buscaEndereço, e manda o valor do CEP
Lembra que tínhamos feito essa parte mais dinâmica no promise.all? Ele recebe um parâmetro e altera - conforme o parâmetro que recebe
 - a URL do viaCEP?*/
 

/* --- Lidando com várias requisições ao mesmo tempo com Promise.all ---

let ceps = ['01001000', '01001001'];
let conjuntoCeps = ceps.map(valores => buscaEndereco(valores));
console.log(conjuntoCeps);
Promise.all(conjuntoCeps).then(respostas => console.log(respostas));

*/

apresenta os seguintes erros ao executar no navegador Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Alguém pode me orientar como corrigir?

1 resposta

Oi Alexandre,

O erro que você está enfrentando, "Access to fetch at ... from origin ... has been blocked by CORS policy", indica que o navegador está impedindo a sua requisição para o ViaCEP devido a uma política de segurança chamada CORS (Cross-Origin Resource Sharing). 😜

Porém, executei o seu código, com o Live Server, e uma pequena correção, funcionou normalmente 👍

A correção foi a inclusão do "$" em https://viacep.com.br/ws/${cep}/json/

Para saber mais: Entenda o que é CORS e como ele afeta suas requisições.

Continue praticando e explorando novas soluções! 💪