如何忽略 ajax 超时



我们希望将取消(中止(请求或等待响应的决定留给用户。发生超时时,应出现一个确认对话框,为用户提供等待响应或中止请求的机会:

$.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);
  
    [...]
  };   
});

相关内容

  • 没有找到相关文章

最新更新