Jquery AjaxError未触发,can';t处理302或其他ajax响应

Jquery AjaxError未触发,can';t处理302或其他ajax响应,jquery,status,Jquery,Status,//首先对不起,我的英语不好 我在这里和网上读了很多关于这类问题的帖子,但是没有人帮我 我在我的网站上使用了许多jQueryAjax请求,有时是为了获得JSON响应,有时只是为了在页面中加载php/html内容 我使用jquery ajax方法创建了一个发送表单的通用函数,一切正常,但是现在,我需要处理XHR对象的“状态”,因为一些ajax请求需要由经过身份验证的用户完成,并且我必须解决会话超时的问题 当会话超时时,XHR通常返回302状态,因为在ajax调用的页面上,我执行“header lo

//首先对不起,我的英语不好

我在这里和网上读了很多关于这类问题的帖子,但是没有人帮我

我在我的网站上使用了许多jQueryAjax请求,有时是为了获得JSON响应,有时只是为了在页面中加载php/html内容

我使用jquery ajax方法创建了一个发送表单的通用函数,一切正常,但是现在,我需要处理XHR对象的“状态”,因为一些ajax请求需要由经过身份验证的用户完成,并且我必须解决会话超时的问题

当会话超时时,XHR通常返回302状态,因为在ajax调用的页面上,我执行“header location xxx”

问题是“简单的”:我无法成功地处理302或类似于jquery ajaxError的状态

我想使用jQueryAjaxError函数来处理我网站上的所有ajax请求。 当我调用带有标题位置的页面时,Firebug会向我显示302响应和位置,但jquery不会处理这些…:(


您能帮助我吗?非常感谢更新jQuery 1.5。它允许执行以下操作:

$.ajax({
  statusCode: {404: function() {
    alert('page not found');
  }
});

更新到jQuery 1.5。它允许执行以下操作:

$.ajax({
  statusCode: {404: function() {
    alert('page not found');
  }
});

非常感谢,但是…与jquery 1.4.2相同的结果,302(后面是200,因为php重定向确定)无法处理:(

我和一个小“黑客”一起工作:

$.ajaxSetup({complete: onRequestCompleted});
    function onRequestCompleted(xhr,textStatus) {
        if (xhr.status == 410) {
            window.location.href = xhr.getResponseHeader("Location");
        }
}
在ajax加载页面上,我将:

header("Location:".FILENAME_LOGIN_SESSION_TIMEOUT, true, 410);

它工作得很好,但是…这是一个好的实践吗?

非常感谢,但是…与jquery 1.4.2相同的结果,302(后面是200,因为php重定向确定)无法处理:(

我和一个小“黑客”一起工作:

$.ajaxSetup({complete: onRequestCompleted});
    function onRequestCompleted(xhr,textStatus) {
        if (xhr.status == 410) {
            window.location.href = xhr.getResponseHeader("Location");
        }
}
在ajax加载页面上,我将:

header("Location:".FILENAME_LOGIN_SESSION_TIMEOUT, true, 410);
这很好,但是…这是一个好的做法吗