2011-05-18 113 views
22

比方说,我有一个代码:jQuery.post()失败回调函数?

$.post("test.php", function(data) { 
    alert("Data Loaded: " + data); 
}); 

有没有什么办法来检查,如果该请求已经失败(例如,由于超时)?

回答

43

是的,有从jQuery documentation

$.post("test.php", function(data) { 
    alert("Data Loaded: " + data); 
}) 
.error(function() { 
    alert("error"); 
}) 

更新:drake7077: “错误是不赞成的jQuery 1.8,使用.fail()”

+3

.error仅支持jQuery v1.5及更高版本中的.post(如文档链接中所述)。 – CedricB 2012-03-27 17:30:14

+8

.error从jquery 1.8开始已弃用,请使用.fail() – drake7707 2013-06-21 18:10:12

1

两种可能性:

  1. 您可以注册一个“ajax error”通用回调函数,当任何ajax操作失败时将会调用该函数:

    $(document).ajaxError(function(event, jqXHR, settings, exception) { ... }); 
    
  2. 您可以回退到$.ajax(),而是直接包含您自己的错误处理程序。

编辑 — @amosrivera是正确的 - 新的“延迟”返回值允许引入处理程序。这些可用于jQuery 1.5和更新。