jQuery AJAX失败函数 - 页面导航错误

时间:2015-07-20 13:02:21

标签: 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:“”
  状态:0
  statusText:“错误”

现在为了增加更多的复杂性,我看到一些其他帖子建议检查readyState或状态是否大于0.所以我决定做一个测试,在那里我加载了网页,停止了网络服务器运行并再次运行AJAX。不幸的是,它返回了完全相同的细节。

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

1 个答案:

答案 0 :(得分:0)

感谢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;