¿Alguna vez te has preguntado cómo es que las páginas web parecen tener vida propia? Es decir, cómo cambian cosas en tiempo real sin que tengas que recargar toda la página. Pues eso, en buena medida, se logra gracias a algo llamado comunicación asincrónica entre el cliente y el servidor. Y uno de los protagonistas más usados para esto son las llamadas Ajax.
Sí, esas pequeñas peticiones que permiten actualizar solo una parte de la página sin hacer un refresh completo. Es como si tu navegador tuviera un diálogo directo con el servidor y le pidiera solo lo que necesita en ese momento, sin molestar a todo lo demás.
¿Qué es exactamente una llamada Ajax?
Antes de meternos en detalles técnicos —porque sé que puede sonar medio complicado— hay que entender qué significa eso de Ajax. Aunque suena a tecnología súper avanzada y un poco abstracta, en realidad es solo una forma elegante de decir: “Oye, JavaScript está hablando con el servidor y trayéndose datos sin interrumpir lo que estás viendo”.
Es como cuando pides algo por teléfono y no necesitas apagar la tele ni detener tu charla; simplemente te traen esa información mientras tú sigues haciendo lo tuyo.
Cómo hacer una llamada Ajax paso a paso
Vamos con calma, aquí va la idea básica para entenderlo:
1. Crear una conexión
Primero necesitas crear esa especie de línea telefónica digital usando XMLHttpRequest. Es como preparar tu teléfono para hacer la llamada:
let xhr = new XMLHttpRequest();
Nada del otro mundo, pero esencial.
2. Configurar qué quieres pedir
Luego le dices qué quieres solicitar —por ejemplo: datos desde alguna API— especificando si será GET o POST, y hacia dónde va dirigido:
xhr.open('GET', 'https://ejemplo.com/api/datos', true);
Aquí estamos diciendo: “Oye, quiero obtener datos desde esta URL”. El true indica que será asíncrono; o sea, no bloqueará nada mientras espera.
3. Prepararte para responder
Cuando llega la respuesta del servidor (que puede tardar unos milisegundos o más), necesitas definir qué pasa después:
xhr.onload = function() {
if (xhr.status >= 200 && xhr.status < 300) {
// Aquí procesas los datos recibidos
} else {
// O gestionas errores
}
};
Y sí… hay veces en las que las cosas no salen bien —como cuando hay problemas con la red o error del servidor— así que también hay que tener preparado qué hacer en esos casos.
4. Enviar
Finalmente... envías esa petición:
xhr.send();
Y listo. La magia sucede en segundo plano mientras tú sigues navegando o haciendo otras cosas.
¿Por qué todavía usar XMLHttpRequest?
Sé que hoy día hay herramientas más modernas —como Fetch API o Axios— pero ojo: XMLHttpRequest todavía tiene su lugar. Es compatible con navegadores antiguos y es muy fácil de entender si estás empezando o si quieres algo simple sin complicaciones.
Ventajas:
- Funciona casi en todos lados.
- Fácil de implementar.
- Hay montones de ejemplos y tutoriales por ahí.
Desventajas:
- Su sintaxis puede parecer un poco engorrosa.
- No maneja bien datos binarios complejos.
- Carece nativamente de Promesas; eso hace las cosas un poquito más complicadas cuando quieres encadenar varias solicitudes.
¿Necesito saber XML?
Para nada. Aunque diga "XML" en su nombre, no tienes por qué preocuparte por ese formato; puedes mandar JSON, texto plano o formularios codificados sin problema alguno.
¿Y jQuery?
Claro —si aún usas jQuery— también tiene métodos fáciles para hacer llamadas Ajax sin tanto rollo técnico. Solo buscas .ajax() y listo; menos código y más rápido para algunos casos.
Seguridad ante todo
Eso sí: al enviar datos sensibles con Ajax debes tener cuidado. Estas llamadas pueden ser vulnerables a ataques tipo CSRF (Cross-Site Request Forgery). Lo recomendable siempre es complementar con medidas adicionales de seguridad para mantener tus datos seguros.
Entender cómo funciona esa comunicación asincrónica te da poder sobre cómo construir experiencias web mucho más fluidas e interactivas. No olvides que detrás de cada carga rápida o actualización dinámica hay alguien manejando estos pequeños trucos tecnológicos.




