日期:2014-05-17  浏览次数:20678 次

ajax请求遇到302
用户在浏览器使用系统,如果一段时间后没有任何操作,session过期,然后再点击页面上的某些链接(触发一个ajax请求),服务器检测到Session过期会先返回一个302,这个时候有什么好的办法能在代码中检测到,然后再处理呢?现在客户端的脚本是用jquery的ajax写的。
烦了一段时间了,没有找到好的解决办法,看起来302是被浏览器直接处理,然后在ajax的回调函数中,收到的已经是redirect后的内容了,有没有办法能捕获到这个302的状态码呢?
这应该是个很常见的问题,有没有朋友遇到类似的情况,怎么解决的呢(不修改服务器的代码)?

------解决方案--------------------
$.ajax({
  statusCode: {
    404: function() {
      alert("page not found"); 
}  }}); 
看看这段代码是否有帮助
------解决方案--------------------
你没把302通过response写出来 ajax当然接收不到了!

可以这么做:你在后台接收到302错误码以后  String  error = "302"   response.write(error);