Gestione degli errori e dei risultati AJAX
Implementare solidi meccanismi di gestione degli errori con le callback .fail() e .always() e gestire il recupero corretto dei dati con .done() per applicazioni resilienti.
Gestione degli errori e dei risultati AJAX è una lezione jQuery Academy gratuita su CoddyKit. Questa è la lezione 2 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento jQuery Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso jQuery Academy include 3 lezioni in totale.
Gestire gli esiti asincroni
Quando effettua una richiesta AJAX, si tratta di un'operazione asincrona. Ciò significa che il codice non attende la risposta del server, ma continua a eseguire altre attività.
Per gestire la risposta del server (o la sua assenza), jQuery mette a disposizione metodi speciali chiamati callback. Queste funzioni vengono eseguite solo quando si verificano determinati eventi, ad esempio un esito positivo o negativo.
Quando tutto va per il meglio
La callback .done() è la scelta ideale per gestire le richieste AJAX completate con successo. Viene eseguita quando il server risponde con un codice di stato che indica un esito positivo (in genere 200-299).
- Riceve i dati restituiti dal server.
- È il posto ideale per aggiornare l'interfaccia utente con informazioni aggiornate.
Visualizzare i dati ricevuti
Recuperiamo alcuni dati e visualizziamoli quando la richiesta ha esito positivo. Noti come .done() sia concatenato alla chiamata $.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>');
});
});Quando qualcosa va storto
Ma cosa succede se il server non riesce a soddisfare la richiesta? È qui che entra in gioco la callback .fail(). Viene eseguita quando la richiesta AJAX rileva un errore, ad esempio un 404 (Not Found) o un 500 (Server Error).
- Consente di informare l'utente o registrare i problemi.
- Riceve i dettagli dell'errore.
Rispondere agli errori
Proviamo a recuperare dati da un URL inesistente. La callback .fail() intercetterà l'errore e ne registrerà i dettagli.
$(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>');
});
});Interpretare i parametri dell'errore
La callback .fail() fornisce tre parametri utili per capire cosa è andato storto:
jqXHR: l'oggetto jQuery XMLHttpRequest, che fornisce dettagli di basso livello.textStatus: una stringa che descrive il tipo di errore (ad esempio, "timeout", "error", "abort").errorThrown: il testo dello stato HTTP (ad esempio, "Not Found" per un 404).
Utilizzi questi parametri per fornire agli utenti indicazioni specifiche.
Sempre in esecuzione, qualunque cosa accada
A volte è necessario eseguire un'azione indipendentemente dal fatto che la richiesta AJAX abbia avuto esito positivo o negativo. Questo è il compito della callback .always().
- Viene sempre eseguita dopo uno dei due metodi,
.done()o.fail(). - È ideale per attività di pulizia, come nascondere un indicatore di caricamento o riattivare un pulsante.
Eseguire le operazioni di pulizia
Aggiungiamo .always() all'esempio precedente. Simuleremo uno stato di caricamento e ci assicureremo che venga rimosso sia in caso di successo sia in caso di errore della richiesta.
$(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)');
});
});Organizzare le callback
I metodi AJAX di jQuery restituiscono un oggetto simile a una Promise, che consente di concatenare direttamente i metodi .done(), .fail() e .always().
Questa concatenazione rende il codice più pulito e leggibile, separando chiaramente i blocchi di logica per il successo, gli errori e le operazioni finali.
Verifichi le Sue conoscenze
Consideri la seguente richiesta AJAX di jQuery:
$.ajax({
url: "/api/data",
method: "GET"
})
.done(function() {
console.log("A");
})
.fail(function() {
console.log("B");
})
.always(function() {
console.log("C");
});
Se il server risponde con un errore 404 Not Found, cosa verrà stampato nella console?
Riepilogo della gestione AJAX
Ha acquisito le callback essenziali per una gestione affidabile di AJAX:
.done(): per le risposte positive..fail(): per gestire gli errori..always(): per le azioni da eseguire in ogni caso.
Utilizzandole, le Sue applicazioni possono gestire con eleganza le interazioni di rete, offrendo un'esperienza migliore agli utenti anche quando le cose non vanno come previsto.
Domande Frequenti
La lezione «Gestione degli errori e dei risultati AJAX» è gratuita?
Sì — il testo completo di «Gestione degli errori e dei risultati AJAX» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso jQuery Academy, passa a CoddyKit PRO. Il corso jQuery Academy include 3 lezioni in totale.
Cosa imparerò in «Gestione degli errori e dei risultati AJAX»?
Implementare solidi meccanismi di gestione degli errori con le callback .fail() e .always() e gestire il recupero corretto dei dati con .done() per applicazioni resilienti. Eserciti jQuery Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare jQuery Academy?
Non è richiesta alcuna esperienza precedente. jQuery Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 3.
Quanto tempo richiede la lezione «Gestione degli errori e dei risultati AJAX»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione jQuery Academy?
Sì. Ogni lezione jQuery Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Configurazione efficace delle richieste AJAX
- Gestione degli errori e dei risultati AJAX
- AJAX cross-domain (CORS/JSONP)