Załóżmy, że mam dość długo działa wywołanie jQuery AJAX (powiedzmy 5 sekund) w następujący sposób:Jak stwierdzić, czy JQuery błąd oznacza połączenie zostało przerwane
$.ajax({
url: '/LongCall',
type: 'POST',
async: true,
cache: false,
datatype: 'json',
success: function(data) {
alert('Success!');
},
error(xhr, textStatus, errorThrown) {
alert('Error!');
}
});
Załóżmy teraz, czekając na moje pięć drugiego procesu uruchomienia użytkownik staje się niecierpliwy i decyduje się na jakąś nawigację na mojej stronie. W powyższym wywołaniu użytkownik otrzymuje komunikat o błędzie po kliknięciu linku.
Chcę, aby wyświetlał się komunikat o błędzie, jeśli rzeczywiście wystąpił błąd, ale jeśli wszystko, co się zdarzyło, to to, że użytkownik zdecydował się odejść, nie chcę wyświetlać komunikatu o błędzie. Jak mogę to zrobić?
Innymi słowy, czy istnieje pewna wartość, którą mogę sprawdzić (xhr.status maybe?), Która powie mi, że wystąpił błąd po prostu, że proces został przerwany, więc mogę wiedzieć, aby zignorować błąd?
Dzięki!
Sprawdź drugi i trzeci argument wywołania błędu. –
Drugi argument to "błąd". Trzecim argumentem jest "". W tym przypadku nie jest to przydatne z tego, co mogę powiedzieć. –
W takim przypadku przejrzyj właściwości pierwszego argumentu. –