Gestión de errores y respuestas correctas de AJAX
Implemente mecanismos sólidos de gestión de errores con los callbacks .fail() y .always(), y procese correctamente los datos obtenidos mediante .done() para crear aplicaciones resilientes.
Gestión de errores y respuestas correctas de AJAX es una lección gratuita de jQuery Academy en CoddyKit. Esta es la lección 2 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de jQuery Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de jQuery Academy incluye 3 lecciones en total.
Gestión de resultados asíncronos
Cuando realiza una solicitud AJAX, se trata de una operación asíncrona. Esto significa que su código no espera la respuesta del servidor, sino que continúa ejecutando otras tareas.
Para gestionar la respuesta del servidor (o la ausencia de esta), jQuery proporciona métodos especiales llamados callbacks. Estas funciones se ejecutan únicamente cuando ocurren determinados eventos, como un éxito o un error.
Cuando todo sale bien
El callback .done() es la opción principal para gestionar solicitudes AJAX correctas. Se ejecuta cuando el servidor responde con un código de estado que indica éxito (normalmente, entre 200 y 299).
- Recibe los datos devueltos por el servidor.
- Es el lugar perfecto para actualizar la interfaz de usuario con información nueva.
Mostrar datos obtenidos correctamente
Vamos a obtener algunos datos y mostrarlos cuando la solicitud se complete correctamente. Observe cómo .done() se encadena a la llamada $.ajax().
$(document).ready(function() {
$.ajax({
url: "https://jsonplaceholder.typicode.com/posts/1",
method: "GET"
})
.done(function(data) {
console.log("Success! Data received:");
console.log(data.title); // Access a property
$('body').append('<p>Post Title: ' + data.title + '</p>');
});
});Cuando algo sale mal
Pero ¿qué ocurre si el servidor no puede completar su solicitud? Ahí es donde interviene el callback .fail(). Se ejecuta cuando la solicitud AJAX encuentra un error, como un 404 (No encontrado) o un 500 (Error del servidor).
- Le ayuda a informar al usuario o registrar problemas.
- Recibe detalles sobre el error.
Responder a los errores
Vamos a intentar obtener datos de una URL inexistente. El callback .fail() capturará el error y registrará sus detalles.
$(document).ready(function() {
$.ajax({
url: "https://jsonplaceholder.typicode.com/nonexistent", // This URL will fail
method: "GET"
})
.done(function(data) {
console.log("This won't run on error.");
})
.fail(function(jqXHR, textStatus, errorThrown) {
console.log("Error! Status: " + textStatus);
console.log("HTTP Error: " + errorThrown);
$('body').append('<p>Error fetching data!</p>');
$('body').append('<p>Status: ' + textStatus + '</p>');
});
});Interpretar los parámetros de error
El callback .fail() proporciona tres parámetros útiles para ayudarle a entender qué salió mal:
jqXHR: el objeto XMLHttpRequest de jQuery, que ofrece detalles de bajo nivel.textStatus: una cadena que describe el tipo de error (por ejemplo, "timeout", "error", "abort").errorThrown: el texto del estado HTTP (por ejemplo, "Not Found" para un 404).
Utilícelos para proporcionar información específica a sus usuarios.
Siempre se ejecuta, pase lo que pase
A veces, debe realizar una acción independientemente de si la solicitud AJAX se completó correctamente o falló. Esa es la función del callback .always().
- Siempre se ejecuta después de cualquiera de los dos:
.done()o.fail(). - Es ideal para tareas de limpieza, como ocultar un indicador de carga o volver a habilitar un botón.
Realizar tareas de limpieza
Vamos a añadir .always() al ejemplo anterior. Simularemos un estado de carga y nos aseguraremos de eliminarlo tanto si la solicitud se completa correctamente como si falla.
$(document).ready(function() {
$('body').append('<p id="status">Loading data...</p>'); // Simulate loading
$.ajax({
url: "https://jsonplaceholder.typicode.com/posts/1", // Try changing to 'nonexistent' to see fail+always
method: "GET"
})
.done(function(data) {
console.log("Success! Data: " + data.title);
$('#status').text('Data loaded successfully!');
})
.fail(function(jqXHR, textStatus, errorThrown) {
console.log("Failed! " + textStatus);
$('#status').text('Failed to load data!');
})
.always(function() {
console.log("Request finished (success or failure).");
// This could be where you hide a spinner or re-enable a button
$('#status').append(' (Finished)');
});
});Organizar sus callbacks
Los métodos AJAX de jQuery devuelven un objeto similar a una Promise, lo que permite encadenar directamente los métodos .done(), .fail() y .always().
Este encadenamiento hace que su código sea más limpio y fácil de leer, ya que separa claramente los bloques de lógica de éxito, error y finalización.
Ponga a prueba sus conocimientos
Considere la siguiente solicitud AJAX de jQuery:
$.ajax({
url: "/api/data",
method: "GET"
})
.done(function() {
console.log("A");
})
.fail(function() {
console.log("B");
})
.always(function() {
console.log("C");
});
Si el servidor responde con un error 404 Not Found, ¿qué se imprimirá en la consola?
Resumen de la gestión de AJAX
Ha aprendido los callbacks esenciales para gestionar AJAX de forma sólida:
.done(): para respuestas correctas..fail(): para gestionar errores..always(): para acciones que deben ejecutarse pase lo que pase.
Al utilizarlos, sus aplicaciones pueden gestionar las interacciones de red correctamente y ofrecer una mejor experiencia a los usuarios, incluso cuando las cosas no salen según lo previsto.
Preguntas frecuentes
¿La lección «Gestión de errores y respuestas correctas de AJAX» es gratis?
Sí — el texto completo de «Gestión de errores y respuestas correctas de AJAX» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de jQuery Academy, actualiza a CoddyKit PRO. El curso de jQuery Academy incluye 3 lecciones en total.
¿Qué aprenderé en «Gestión de errores y respuestas correctas de AJAX»?
Implemente mecanismos sólidos de gestión de errores con los callbacks .fail() y .always(), y procese correctamente los datos obtenidos mediante .done() para crear aplicaciones resilientes. Practicas jQuery Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar jQuery Academy?
No se requiere experiencia previa. jQuery Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 3.
¿Cuánto tiempo toma la lección «Gestión de errores y respuestas correctas de AJAX»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de jQuery Academy?
Sí. Cada lección de jQuery Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Configuración eficaz de solicitudes AJAX
- Gestión de errores y respuestas correctas de AJAX
- AJAX entre dominios (CORS/JSONP)