Czy istnieje sposób radzenia sobie z błędem z żądania ajax w JQuery, tak, że gdy użytkownik nawiguje z dala od strony, wynikowy błąd jest ignorowany?Jak radzić sobie z błędem postu jQuery ajax podczas nawigacji z dala od strony
$(document).ready(function() {
$.ajax({
url:'/server/url/',
type: 'POST',
data: {some..data},
success:function(response) { do stuff with response },
error: function(xhr, textStatus, errorThrown) {
// Don't raise this alert if user has navigated away from the page
alert('error');
}
});
Jestem ciekawy, czy ktoś wie o tym w czysty sposób? Wiem, że możesz stworzyć pewną logikę w metodzie $(window).bind("beforeunload", function(){})
, ale wolałbym, jeśli byłby sposób poradzenia sobie z sytuacją bez robienia tego, ponieważ Chrome wydaje się nie obsługiwać tego. Czy jest na przykład konkretny błąd, który jest zwracany w tym przypadku?
Dzięki.
Ponieważ połączenie jest z serwerem, nie sądzę, że byłoby wystarczająco dużo wiedzy, aby zwrócić odpowiedź w różny sposób w zależności od tego, czy użytkownik nawigował poza tą stroną, czy nie. Czy jest jakiś przykład tego zachowania? Wydaje się dziwne, że skrypt z innej strony będzie nadal działał po przejściu poza tę stronę. –
I * think * skrypt faktycznie przestaje działać i pojawia się błąd, ponieważ został on przedwcześnie zakończony. –
Gdy odejdziesz, twoje wywołanie AJAX przechodzi w bit-bucket. Na kliencie nie ma już programu nasłuchującego, który otrzyma wiadomość z tego żądania. –