我们希望将取消(中止(请求或等待响应的决定留给用户。发生超时时,应出现一个确认对话框,为用户提供等待响应或中止请求的机会:
$.ajax({
[...]
timeout: 2000,
success: function(data) {
[...]
};
});
$.ajaxSetup({
error: function(data, textStatus, pStatusDescription) {
if(textStatus === "timeout")
{
if(confirm("Do you want to wait for the response?"))
{
// continue request
}
else
{
// abort request
}
}
}
});
您可以使用其他方式,通过独立于 ajax 请求设置超时:
let xhr;
const timeout = setTimeout(() => {
if(confirm("Do you want to wait for the response?")) {
// may be some code here
} else {
xhr.abort()
}
}, 2000);
xhr = $.ajax({
[...]
error: function() {
clearTimeout(timeout);
}
success: function(data) {
clearTimeout(timeout);
[...]
};
});