使jquery post()更新 - 检查连接是否失败/超时

时间:2010-12-10 18:23:07

标签: jquery ajax

对于一个简单的网页,我正在通过jQuery的post()定期调用php脚本来对数据库进行更改,然后再获取一些更新的信息。

有时这些调用失败但没有通知。

有人可以告诉我用于错误检查的最佳方法吗?所以如果由于连接丢失,超时或其他可能发生的事情而导致更新失败并显式检查,我可以显示一条消息吗?

2 个答案:

答案 0 :(得分:0)

查看此链接。它解释了如何处理超时:

http://www.bennadel.com/blog/1500-Catching-Timeout-Errors-With-jQuery-Powered-AJAX.htm

忽略初始部分。查看jQuery代码。

答案 1 :(得分:0)

首先关闭 - 确保使用成功事件回调及其响应对象来排除任何服务器端错误。

$.ajax({
   //... other ajax options
   success: function(response){
      alert(response);
   }
});

你的php脚本本质上是回应对此成功函数的响应。它可能是一个简单的字符串“成功”,“失败”,甚至是JSON / XML字符串

其次...

您可以设置超时选项以排除这些错误:

$.ajax({
  //...other ajax options...
  timeout: 5000 //5 second timeout
});

...第三

您可以将错误事件回调用于任何例外......

$.ajax({
   error: function(XMLHttpRequest, textStatus, errorThrown){
   //handle errors here
   }
});

来自jQuery docs on ajax

错误:

  

请求时要调用的函数   失败。该功能通过三次   arguments:XMLHttpRequest对象,   描述错误类型的字符串   发生了并且是可选的   异常对象,如果发生了一个。   第二个可能的值   参数(除了null)是“超时”,   “错误”,“未修改”和   “parsererror”。这是Ajax Event。   不会调用此处理程序   JSONP请求,因为他们没有   使用XMLHttpRequest。