取消ajax()成功

cancel ajax() success

本文关键字:成功 ajax 取消      更新时间:2023-09-26

我正在使用动态分页。

我需要在开始另一个之前取消jQuery ajax中的success事件。

我设置了一个变量等于$.ajax(),在此之前,无论如何我都调用abort

问题是success仍然开火。

Ajax的答案:如何防止jQuery调用成功事件后执行xmlHttpRequest.abort();是错误的,或者至少它对我不起作用,因为如果我在ajax之后立即启动abort,什么也不会发生。

我只是希望ajax变量的success不触发,如果另一个即将启动。

代码片段:

if(updatePageAJAX){
    updatePageAJAX.abort();
}
updatePageAJAX = $.ajax({
});

我可以提供更多的细节,如果你喜欢,但updatePageAJAX工作。我不能告诉你abort是否有效。我把alertif看看它是否触发;确实如此。

如果我把abort放在updatePageAJAX = $.ajax后面,什么都不会发生。

您是否尝试将xhr对象保存在变量中,以便您可以检查成功回调,如果它是正确的xhr对象?例如:

$(function() {
    var xhr = null;
    $('.link').click(function() {
        var page = $(this).text();
        if(xhr != null) {
            xhr.abort();
        }
        xhr = $.ajax({
            type: 'GET',
            url: 'index.php',
            data: 'js=true&page=' + page,
            success: function(data, responseCode, jqxhr) {
                if(xhr == jqxhr) {
                    $('#page').text(data);
                    xhr = null;
                }
            }
        });
    });
});

这样,如果不是正确的请求,成功回调将不会执行