Tôi đang sử dụng khung công tác Prototype JS để thực hiện các cuộc gọi Ajax. Đây là mã của tôi:Cuộc gọi Ajax bị hủy bởi trình duyệt
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);
}
Hầu hết thời gian, điều này hoạt động tốt và các chức năng thành công được gọi với một mã trạng thái của 200. Khoảng 5% thời gian trên Safari chức năng thành công được gọi với một mã trạng thái 0. Trong trường hợp này, khi tôi nhìn vào tab Mạng của thanh tra web, cuộc gọi ajax được liệt kê với trạng thái "đã hủy". Tôi có thể xác nhận với nhật ký máy chủ, rằng yêu cầu không bao giờ nhấn vào máy chủ. Như thể yêu cầu ajax đã bị hủy ngay lập tức mà không cần kết nối với máy chủ. Tôi đã không tìm thấy bất kỳ cách đáng tin cậy để tái sản xuất này, nó có vẻ là ngẫu nhiên. Tôi làm điều đó 20 lần và nó xảy ra một lần.
Có ai biết điều gì sẽ khiến cuộc gọi ajax bị hủy hoặc trả lại mã trạng thái là 0 không?
Bạn đang sử dụng phiên bản prototypej nào? – jonycheung