gpt4 book ai didi

javascript - 取消ajax()成功

转载 作者:行者123 更新时间:2023-12-02 19:08:30 28 4
gpt4 key购买 nike

我正在使用动态分页。

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

我已经设置了一个等于$.ajax()的变量,在这样做之前,无论如何我都会调用abort

问题是成功仍然会触发。

Ajax: How to prevent jQuery from calling the success event after executing xmlHttpRequest.abort(); 的答案是错误的,或者至少它对我不起作用,因为如果我在 ajax 之后立即触发 abort ,则什么也不会发生。

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

代码片段:

if(updatePageAJAX){
updatePageAJAX.abort();
}

updatePageAJAX = $.ajax({
});

如果您愿意,我可以提供更多详细信息,但 updatePageAJAX 有效。我无法告诉您 abort 是否有效。我在 if 中放置了一个 alert 来查看它是否触发;确实如此。

如果我在设置 updatePageAJAX = $.ajax 后立即设置 abort,则什么也不会发生。

最佳答案

您是否尝试过将 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;
}
}
});
});
});

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

关于javascript - 取消ajax()成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14073077/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com