1
resposta

XMLHttpRequest e Ajax

Salve pessoal!

Tudo bem com vocês?

Antes de tirar a dúvida convosco, gostaria de agradecer a atenção e estou ansioso pelas respostas (hehehe).

Estou com uma dúvida na estrutura do código que estou fazendo com base no artigo sobre Ajax da trilha de formação:

Vou anexar o código abaixo das dúvidas.

Minha dúvida no código está no seguinte:

1 - Tenho visto nas aulas o uso dos ifs, mas por que não precisaria escrever o else ou elseif para casos como do código abaixo?

2 - Tentei reescrever o código no meu vscode, mas notei que tem um colchete dps do "xhr.send" , gerou erro sintatico avisado pelo vscode, mas essa function ficaria contida no segundo if, ou seria parte do else de algumas das ifs anteriores?

let xhr = new XMLHttpRequest(); 
xhr.open('GET', url, true); 
xhr.onreadystatechange = function() { 
    if (xhr.readyState == 4) { 
        if (xhr.status = 200) 
        console.log(xhr.responseText); 
    }
 } 
xhr.send(); }

fonte do código: https://www.alura.com.br/artigos/preenchendo-formulario-html-automaticamente-com-ajax

1 resposta

Oi, Isaac! Como vai?

1 - Você pode sim fazer um else nesse código, por exemplo criando uma solução para caso o status da resposta não tenha sido 200. Nesse caso, você pode avisar o usuário de alguma forma, que o processo não foi bem sucedido (o famoso "tente novamente mais tarde").

2 - Esse bloco de código que você colocou é parte de uma função, então a } final está sinalizando o final da função. Abaixo segue o código completo e formatado.

function buscaCep() {
    let inputCep = document.querySelector('input\[name=cep\]'); 
    let cep = inputCep.value.replace('-', '');
    let url = 'http://viacep.com.br/ws/' + cep + '/json'; 
    let xhr = new XMLHttpRequest(); 

    xhr.open('GET', url, true); 
    xhr.onreadystatechange = function() { 
            if (xhr.readyState == 4) { 
                if (xhr.status == 200) 
                    console.log(xhr.responseText); 
            }
     }

    xhr.send();
}

O artigo segue, e complementa esse código, siga o artigo para obter o código final.

Bons estudos!