O objeto XMLHttpRequest é essencial para o AJAX, sendo suportado por todos os navegadores modernos. Os métodos válidos desse objeto são
- A)load( ) e reload( ).
Errada: load() e reload() não são métodos do XMLHttpRequest; reload() é associado ao navegador/documento, não ao objeto AJAX.
- B)abort( ) e receive( ).
Errada: abort() existe no XMLHttpRequest, mas receive() não é método válido desse objeto.
- C)open( ) e responseXML( ).
Errada: open() é método válido, porém responseXML() não é método, e sim uma propriedade do objeto.
- D)getAllHeader( ) e setAllHeader( ).
Errada: getAllHeader() e setAllHeader() não existem no XMLHttpRequest; os nomes corretos são diferentes e mais específicos.
- E)getAllResponseHeaders( ) e setRequestHeader( ).
Certa: getAllResponseHeaders() e setRequestHeader() são métodos reais e válidos do XMLHttpRequest.
Gabarito: E
O XMLHttpRequest é o objeto clássico do AJAX, usado para fazer requisições HTTP sem recarregar a página. Ele tem alguns métodos bem conhecidos para controlar a requisição e lidar com os cabeçalhos da resposta. Entre eles, estão getAllResponseHeaders() e setRequestHeader(), que aparecem bastante em questões porque são métodos reais do objeto. O método getAllResponseHeaders() retorna todos os cabeçalhos da resposta em forma de texto. Já setRequestHeader() permite definir um cabeçalho na requisição, como Content-Type ou Authorization, antes do envio. Isso é essencial quando você precisa informar ao servidor como a requisição deve ser tratada. A banca costuma misturar método com propriedade para confundir. Por exemplo, responseXML não é método, é propriedade, e open() realmente existe, mas não é a dupla correta cobrada aqui. Em outras palavras, o segredo é lembrar que XMLHttpRequest tem métodos para enviar/ajustar a requisição e propriedades para consultar o resultado. Portanto, o gabarito é a letra E, porque getAllResponseHeaders() e setRequestHeader() são, de fato, métodos válidos do objeto XMLHttpRequest. É o tipo de detalhe que a FGV adora: parece simples, mas ela troca um nomezinho e pronto, a armadilha está montada.