Używam szkieletu Prototype JS do wykonywania wywołań Ajax. Tu jest mój kodu:Wywołanie Ajax zostaje anulowane przez przeglądarkę
new Ajax.Request('/myurl.php', {method: 'post', postBody: 'id='+id+'&v='+foo, onSuccess: success, onFailure: failed});
function success(ret) {
console.log("success",ret.readyState, ret.status);
}
function failed(ret) {
console.log("failed",ret.readyState, ret.status);
}
Przez większość czasu, to działa prawidłowo, a funkcja sukces jest nazywany kodem statusu 200. około 5% czasu na Safari funkcja sukces jest nazywany kodem statusu 0. W tym przypadku, gdy patrzę na zakładkę Network inspektora sieci, wywołanie ajax jest wyświetlane ze statusem "anulowane". Mogę potwierdzić dziennikami serwera, że żądanie nigdy nie trafiło na serwer. To tak, jakby żądanie ajax zostało natychmiast anulowane, nawet nie próbując połączyć się z serwerem. Nie znalazłem żadnego wiarygodnego sposobu na odtworzenie tego, wydaje się być przypadkowe. Robię to 20 razy i zdarza się to raz.
Czy ktoś wie, co spowodowałoby anulowanie wywołania ajax lub zwrócenie kodu statusu 0?
Którą wersję prototypejs używasz? – jonycheung