Numa aplicação web, considere o caso em que um arquivo intitulado xpto.txt é obtido do servidor sem que a página inteira seja recarregada. A estrutura básica correta do código para o uso da tecnologia Ajax nesse caso é:
- A)const xhttp = new XMLHttpRequest(); xhttp.open("GET", "xpto.txt"); xhttp.send();
Errada, porque falta tratar a resposta com onload, embora a estrutura básica de XMLHttpRequest, open() e send() esteja próxima do correto.
- B)const xhttp = new HttpRequest(); xhttp.onload = function() { ... } xhttp.open("GET", " xpto.txt "); xhttp.send();
Errada, porque HttpRequest nao é o objeto padrão do Ajax e ainda há erro de formatação no caminho do arquivo, apesar da ideia geral de callback estar presente.
- C)const xhttp = new XMLHttpRequest(); xhttp.open = function() { ... } xhttp.send("GET", " xpto.txt "); xhttp.onload();
Errada, porque open não deve ser redefinido como função, send não recebe os parametros de open e onload não é chamado assim.
- D)const xhttp = new XMLHttpRequest(); xhttp.onload = function(){ ... } xhttp.open("GET", " xpto.txt "); xhttp.send();
Certa, porque usa XMLHttpRequest com onload, open("GET", "xpto.txt") e send() na sequência correta para uma requisicao Ajax assíncrona.
- E)const xhttp = new XMLRequest(); xhttp.onload("GET", " xpto.txt "); xhttp.send();
Errada, porque XMLRequest nao é o objeto correto e onload nao recebe parametros como "GET" e o nome do arquivo.
Gabarito: D
Ajax é a técnica que permite fazer uma requisicao ao servidor sem recarregar a pagina inteira. Na pratica, a estrutura mais classica em JavaScript usa um objeto XMLHttpRequest, define o que deve acontecer quando a resposta chegar e, em seguida, envia a requisicao com open() e send(). O ponto principal aqui é a ordem e o tipo de chamada. Voce cria o objeto com new XMLHttpRequest(), configura a requisicao com open("GET", "xpto.txt") e depois chama send(). Se quiser tratar a resposta, normalmente define o callback em onload antes de enviar, para o navegador saber o que fazer quando o arquivo retornar. Por isso, o gabarito D está correto: ele traz exatamente o esqueleto típico do Ajax assíncrono, com XMLHttpRequest, onload, open e send, na sequência adequada. Isso bate com a prática ensinada em JavaScript para requisições assíncronas sem recarregar a página. O detalhe que costuma derrubar é confundir o objeto certo ou inverter os métodos. Em Ajax clássico, não se inventa HttpRequest, nem se chama open de qualquer jeito, nem se passa "GET" no send. A lógica é: montar, abrir, configurar resposta e enviar.