javascript - jQuery AJAX失败功能-页面导航错误

标签 javascript jquery ajax error-handling

我的网页是通过AJAX调用将数据加载到其中的,除了您尝试在AJAX加载数据时离开页面导航之外,其他所有功能都可以正常工作。如果我离开该页面,它将触发故障功能,但是其中没有数据,因此我只看到一个警告框,显示“错误”。

我的代码:

.fail(function (jqXHR, textStatus, errorThrown) {
    console.log(jqXHR);
    $('#ajaxloadergif').fadeOut(1000);
    if (textStatus !== 'abort') {
        alert(textStatus+'\n'+errorThrown);     
    }      
});

该console.log会为对象吐出这些值:

readyState: 0
responseText: ""
status: 0
statusText: "error"



现在增加了更多的复杂性,我看到了一些其他的帖子,它们建议检查readyState或status是否大于0。因此,我决定进行一个测试,加载网页,停止Web服务器运行,再次运行AJAX。不幸的是,它返回了完全相同的详细信息。

因此,我基本上需要一些建议来获得有用的错误消息,当没有错误时该消息不会触发。

最佳答案

感谢Vanojx1:

function CancelAJAX() { // Function to cancel all outstanding AJAX requests
    $(AJAXRequest).each(function() { // Loop through all the requests
        if (!this.Complete) { // If the request is not flagged as completed
            this.Request.abort(); // Abort the request
        }
    });
    AJAXRequest = []; // Reset the AJAXRequest variable
}
window.onbeforeunload = function(event) {
    CancelAJAX();
}

设置有:
var RequestIndex = AJAXRequest.length
AJAXRequest[RequestIndex] = {};
AJAXRequest[RequestIndex].Complete = false;
AJAXRequest[RequestIndex].Request = $.post(... 

这是在.done回调中完成的:
AJAXRequest[RequestIndex].Complete = true;

关于javascript - jQuery AJAX失败功能-页面导航错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31517292/

相关文章:

javascript - 使用 jquery 和 DOM 访问表单元素

javascript - Angular 使用不同的超时为数组中的每个项目设置动画

javascript - 所有 JQuery 函数在部分回发时丢失

php - Ajax jQuery 数组中的 POST 未定义索引

PHP apache_request_headers() 与现实不符(经 Firebug 确认): why?

jquery - jQuery 的 .ajax 方法如何定义 'failed' 请求?

API 的 Javascript 效率

javascript - 模拟多个请求

javascript - 更改 iframe 内的 body bgcolor

javascript - $.extend() = 与服务器循环一起使用时不扩展