gpt4 book ai didi

javascript - 如何取消挂起的 Jquery Ajax 调用?

转载 作者:行者123 更新时间:2023-12-01 05:51:29 25 4
gpt4 key购买 nike

我有支持长轮询的 REST Web 服务。如果服务器有任何新数据,如果我发出 Jquery Ajax 请求,它会发送给我。如果服务器没有更新,请求将处于挂起状态。现在,如果用户突然注销,我想取消该请求。我尝试过像

var request=$.ajax({
--------
-
-------
});

request.abort();

但是我在这里遇到错误,因为请求没有从服务器收到任何数据(导致仍处于挂起状态)。所以它是“空”。

如何取消该 Ajax 请求?

最佳答案

中止被jquery视为错误,因此您需要在失败处理程序中检查jqXHR的statusText以查看它是否已被中止并进行相应处理。

下面是说明代码:

var jqXHR = $.ajax({
url: '...'
});

// jqXHR.abort() is regarded as an error, so your logic for detecting
// it should go in the fail handler. Here's how you could set this up:
jqXHR.fail(function(args) {
if (jqXHR.statusText == 'abort') {
console.log('AJAX aborted');
return;
}

// Other error processing goes here.

});

// If pending, abort AJAX call
if (jqXHR.state() == 'pending') {
jqXHR.abort();
}

关于javascript - 如何取消挂起的 Jquery Ajax 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21739390/

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