No mundo do desenvolvimento web moderno, a troca de dados assíncrona entre o cliente e o servidor é um aspecto crucial na construção de aplicações dinâmicas e responsivas. Uma das ferramentas fundamentais que possibilitam essa funcionalidade é o objeto XMLHttpRequest, especificamente seu método POST. Embora a API XMLHttpRequest possa parecer desatualizada na era de APIs mais modernas como Fetch e Axios, entender seus princípios básicos ainda é essencial para qualquer desenvolvedor JavaScript.
O método POST do XMLHttpRequest permite que você envie dados de forma assíncrona para um servidor sem atualizar toda a página web. Essa abordagem melhora a experiência do usuário ao fornecer um fluxo de informações mais suave e eficiente, levando, em última análise, a um melhor desempenho geral da aplicação.
Configurando um XMLHttpRequest POST
Antes de mergulhar no código, vamos revisar o processo básico de configuração para um XMLHttpRequest POST:
- Criar uma nova instância do objeto XMLHttpRequest.
- Definir o método de solicitação (POST) e o ponto de extremidade da URL.
- Configurar os cabeçalhos da solicitação, se necessário.
- Definir a função para lidar com a resposta do servidor.
- Enviar a solicitação com os dados.
// 1. Criar uma nova instância do XMLHttpRequest
const xhr = new XMLHttpRequest();
// 2. Definir o método de solicitação e a URL
xhr.open('POST', '/api/endpoint', true);
// 3. Configurar os cabeçalhos da solicitação (se necessário)
xhr.setRequestHeader('Content-Type', 'application/json');
// 4. Definir o manipulador de resposta
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
// Lidar com a resposta do servidor
console.log(xhr.responseText);
}
};
// 5. Enviar a solicitação com os dados
const data = JSON.stringify({ name: 'John Doe', email: 'john@example.com' });
xhr.send(data);
No exemplo acima, criamos uma nova instância do XMLHttpRequest, definimos o método POST e o ponto de extremidade da URL, configuramos os cabeçalhos de solicitação apropriados e lidamos com a resposta do servidor no manipulador de evento onreadystatechange
. Finalmente, enviamos a solicitação com os dados em formato JSON usando o método send()
.

Tratamento de Respostas e Tratamento de Erros
Embora enviar a solicitação seja crucial, lidar adequadamente com a resposta do servidor é igualmente importante. O manipulador de evento onreadystatechange
permite que você monitore o progresso da solicitação e tome as ações apropriadas com base nas propriedades readyState
e status
.
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
// Resposta bem-sucedida
console.log(xhr.responseText);
} else {
// Tratamento de erros
console.error('Solicitação falhou. Status:', xhr.status);
}
}
};
No exemplo acima, verificamos o readyState
para garantir que a solicitação foi concluída (XMLHttpRequest.DONE
), e então examinamos a propriedade status
para determinar o sucesso ou a falha da solicitação. Um código de status 200 geralmente indica uma resposta bem-sucedida, enquanto outros códigos de status podem indicar várias condições de erro.
Enviando Dados de Formulário
Embora os exemplos anteriores tenham se concentrado em enviar dados JSON, o XMLHttpRequest também permite que você envie dados de formulário de maneira perfeita. Isso é particularmente útil ao trabalhar com formulários HTML tradicionais ou ao lidar com uploads de arquivos.
const formData = new FormData();
formData.append('name', 'John Doe');
formData.append('email', 'john@example.com');
formData.append('file', fileInput.files[0]);
xhr.open('POST', '/api/endpoint', true);
xhr.send(formData);
Neste exemplo, criamos uma instância de FormData
e anexamos os campos do formulário usando o método append()
. Podemos até incluir uploads de arquivo anexando o objeto File
de um elemento <input type="file">
. Finalmente, enviamos o objeto FormData
diretamente usando o método send()
.
Gerar código XMLHttpRequest com Apidog
Apidog é uma plataforma colaborativa de desenvolvimento de API tudo-em-um que fornece um conjunto abrangente de ferramentas para projetar, depurar, testar, publicar e simular APIs. O Apidog permite que você crie automaticamente o código XMLHttpRequest para fazer solicitações HTTP.
Segue o processo para usar o Apidog para gerar código XMLHttpRequest:
Passo 1: Abra o Apidog e selecione nova solicitação

Passo 2: Insira a URL do ponto de extremidade da API para a qual deseja enviar uma solicitação, insira qualquer cabeçalho ou parâmetro de string de consulta que deseje incluir com a solicitação e, em seguida, clique em "Design" para mudar para a interface de design do Apidog.

Passo 3: Selecione "Gerar código do cliente" para gerar seu código.

Passo 4: Copie o código gerado e cole-o em seu projeto.

Usando Apidog para Enviar Solicitações HTTP
Apidog oferece vários recursos avançados que aprimoram ainda mais sua capacidade de testar solicitações HTTP. Esses recursos permitem que você personalize suas solicitações e lide com cenários mais complexos sem esforço.
Passo 1: Abra o Apidog e crie uma nova solicitação.

Passo 2: Encontre ou insira manualmente os detalhes da API para a solicitação POST que deseja fazer.

Passo 3: Preencha os parâmetros necessários e quaisquer dados que deseja incluir no corpo da solicitação.

Conclusão
Como você pode ver, o XMLHttpRequest POST é mais do que apenas uma ferramenta técnica – é um divisor de águas que abre um mundo de possibilidades para os desenvolvedores web. Seja construindo interfaces de usuário dinâmicas, integrando-se a APIs poderosas ou criando a próxima geração de experiências web imersivas, o XMLHttpRequest POST é sua arma secreta.