【问题标题】:XMLHttpRequest error 0 proper management (retry the request)XMLHttpRequest error 0 正确管理(重试请求)
【发布时间】:2025-11-29 08:50:01
【问题描述】:

当 XMLHttpRequest 得到错误 0 时,这意味着没有连接,并且大多数时候您只想在一段时间内重试。

是否有一种简单的方法可以透明地重试 XMLHttpRequest 通知用户连接丢失(就像 gmail 一样)?

(我正在使用 jQuery)

【问题讨论】:

  • 除了将连接代码放入自己的函数并在更改 DOM 的某些部分后调用 settimeout 以让用户知道连接已关闭之外? (我会将此作为答案,但我觉得我错过了一些东西)

标签: jquery xmlhttprequest


【解决方案1】:

在这里寻找你想要的东西:Defensive AJAX and AJAX retries in jQuery

基本上在错误处理程序中,可以做到$.ajax(this);

$.ajax({
  url : 'timeOutPage.html',
  type : 'get',
  timeout : 20000,
  error : function(xhr, textStatus, errorThrown ) {
     if (textStatus == 'timeout') {
       $.ajax(this);
       return;
     }
  }
 });

链接的文章有一个更深入的示例,包括重试限制等...与大多数 jQuery 一样,您几乎可以复制/粘贴他们的示例来开始。

【讨论】: