En el mundo del desarrollo web moderno, el intercambio asíncrono de datos entre el cliente y el servidor es un aspecto crucial para la creación de aplicaciones dinámicas y con buena capacidad de respuesta. Una de las herramientas fundamentales que habilitan esta funcionalidad es el objeto XMLHttpRequest, específicamente su método POST. Si bien la API XMLHttpRequest puede parecer anticuada en la era de las API más modernas como Fetch y Axios, comprender sus principios básicos sigue siendo esencial para cualquier desarrollador de JavaScript.
El método XMLHttpRequest POST te permite enviar datos de forma asíncrona a un servidor sin actualizar toda la página web. Este enfoque mejora la experiencia del usuario al proporcionar un flujo de información más fluido y eficiente, lo que en última instancia conduce a un mejor rendimiento general de la aplicación.
Configuración de un XMLHttpRequest POST
Antes de sumergirnos en el código, revisemos el proceso de configuración básico para una solicitud XMLHttpRequest POST:
- Crea una nueva instancia de objeto XMLHttpRequest.
- Define el método de solicitud (POST) y el punto final de la URL.
- Configura los encabezados de la solicitud, si es necesario.
- Define la función para manejar la respuesta del servidor.
- Envía la solicitud con la carga útil de datos.
// 1. Create a new XMLHttpRequest instance
const xhr = new XMLHttpRequest();
// 2. Define the request method and URL
xhr.open('POST', '/api/endpoint', true);
// 3. Set request headers (if needed)
xhr.setRequestHeader('Content-Type', 'application/json');
// 4. Define the response handler
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
// Handle the server response
console.log(xhr.responseText);
}
};
// 5. Send the request with data payload
const data = JSON.stringify({ name: 'John Doe', email: 'john@example.com' });
xhr.send(data);
En el ejemplo anterior, creamos una nueva instancia de XMLHttpRequest, definimos el método POST y el punto final de la URL, establecemos los encabezados de solicitud apropiados y manejamos la respuesta del servidor en el controlador de eventos onreadystatechange
. Finalmente, enviamos la solicitud con la carga útil de datos en formato JSON utilizando el método send()
.

Manejo de respuestas y manejo de errores
Si bien enviar la solicitud es crucial, manejar adecuadamente la respuesta del servidor es igualmente importante. El controlador de eventos onreadystatechange
te permite supervisar la progresión de la solicitud y tomar las medidas adecuadas en función de las propiedades readyState
y status
.
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
// Successful response
console.log(xhr.responseText);
} else {
// Error handling
console.error('Request failed. Status:', xhr.status);
}
}
};
En el ejemplo anterior, verificamos el readyState
para asegurarnos de que la solicitud se haya completado (XMLHttpRequest.DONE
) y luego examinamos la propiedad status
para determinar el éxito o el fracaso de la solicitud. Un código de estado de 200 generalmente indica una respuesta exitosa, mientras que otros códigos de estado pueden indicar varias condiciones de error.
Envío de datos de formulario
Si bien los ejemplos anteriores se centraron en el envío de datos JSON, XMLHttpRequest también te permite enviar datos de formulario sin problemas. Esto es particularmente útil cuando se trabaja con formularios HTML tradicionales o cuando se trata de cargas de archivos.
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);
En este ejemplo, creamos una instancia de FormData
y agregamos los campos del formulario utilizando el método append()
. Incluso podemos incluir cargas de archivos agregando el objeto File
de un elemento <input type="file">
. Finalmente, enviamos el objeto FormData
directamente usando el método send()
.
Generar código XMLHttpRequest con Apidog
Apidog es una plataforma de desarrollo de API colaborativa todo en uno que proporciona un conjunto de herramientas completo para diseñar, depurar, probar, publicar y simular API. Apidog te permite crear automáticamente código XMLHttpRequest para realizar solicitudes HTTP.
Aquí está el proceso para usar Apidog para generar código XMLHttpRequest:
Paso 1: Abre Apidog y selecciona nueva solicitud

Paso 2: Ingresa la URL del punto final de la API al que deseas enviar una solicitud, ingresa cualquier encabezado o parámetro de cadena de consulta que desees incluir con la solicitud, luego haz clic en "Diseño" para cambiar a la interfaz de diseño de Apidog.

Paso 3: Selecciona "Generar código de cliente" para generar tu código.

Paso 4: Copia el código generado y pégalo en tu proyecto.

Usando Apidog para enviar solicitudes HTTP
Apidog ofrece varias funciones avanzadas que mejoran aún más su capacidad para probar solicitudes HTTP. Estas funciones te permiten personalizar tus solicitudes y manejar escenarios más complejos sin esfuerzo.
Paso 1: Abre Apidog y crea una nueva solicitud.

Paso 2: Encuentra o ingresa manualmente los detalles de la API para la solicitud POST que deseas realizar.

Paso 3: Completa los parámetros requeridos y cualquier dato que desees incluir en el cuerpo de la solicitud.

Conclusión
Como puedes ver, XMLHttpRequest POST es más que una simple herramienta técnica: es un cambio de juego que abre un mundo de posibilidades para los desarrolladores web. Ya sea que estés creando interfaces de usuario dinámicas, integrándote con API potentes o creando la próxima generación de experiencias web inmersivas, XMLHttpRequest POST es tu arma secreta.