Chciałbym złapać błąd i pokazać odpowiedni komunikat, jeśli żądanie Ajax się nie powiedzie.
Mój kod wygląda następująco, ale nie udało mi się złapać nieudanego żądania Ajax.
function getAjaxData(id)
{
$.post("status.ajax.php", {deviceId : id}, function(data){
var tab1;
if (data.length>0) {
tab1 = data;
}
else {
tab1 = "Error in Ajax";
}
return tab1;
});
}
Dowiedziałem się, że „Błąd w Ajax” nigdy nie jest wykonywany, gdy żądanie Ajax nie powiodło się.
Jak obsłużyć błąd Ajax i wyświetlić odpowiedni komunikat, jeśli się nie powiedzie?
jquery
ajax
post
error-handling
TTCG
źródło
źródło
$.ajax
czytelność, należy użyć skrótu dla swojegodata
. Na przykład:{ name : 'John', location: 'Boston' }
$.post().error()
jQuery 1.5 dodało odroczone obiekty, które ładnie sobie z tym radzą. Wystarczy zadzwonić
$.post
i załączyć dowolne osoby obsługijące po zakończeniu rozmowy. Odroczone obiekty pozwalają nawet dołączyć wiele programów obsługi błędów i błędów.Przykład:
Przed wersją jQuery 1.8 funkcja
done
została wywołanasuccess
ifail
została wywołanaerror
.źródło
responseJSON
właściwość, która jest bardzo przydatna w przypadku typu ajaxjson
.źródło
źródło
Prostym sposobem jest zaimplementowanie ajaxError :
Na przykład:
Sugerowałbym przeczytanie dokumentacji ajaxError . Robi coś więcej niż prosty przypadek użycia pokazany powyżej - głównie jego wywołanie zwrotne akceptuje szereg parametrów:
źródło
Musisz zalogować tekst odpowiedzi:
źródło
dołączasz procedurę obsługi .onerror do obiektu ajax, dlaczego ludzie nalegają na opublikowanie JQuery w celu uzyskania odpowiedzi, gdy vanila działa na różnych platformach ...
szybki przykład:
źródło