超时下Ajax请求处理

来源:互联网 发布:剑网三的软件 编辑:程序博客网 时间:2024/05/13 19:00
public class UserLogin extends HttpServlet{        /** serialVersionUID */    private static final long serialVersionUID = 464654165487455L;        /**     * 这里只是示例代码,没有考虑代码的合理性:     *      * The doGet method of the servlet. <br>     * This method is called when a form has its tag value method equals to get.     * @param request the request send by the client to the server     * @param response the response send by the server to the client     * @throws ServletException if an error occurred     * @throws IOException if an error occurred     */    public void doGet(HttpServletRequest request, HttpServletResponse response)        throws ServletException, IOException    {        // 如果是ajax请求,响应头会有x-requested-with相关字段信息        if (null == request.getSession().getAttribute("user"))        {            if (request.getHeader("x-requested-with") != null                && request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest"))              {                //在响应头设置session状态[可以在响应中自行添加相关字段信息]                   response.setHeader("sessionstatus", "nologin");                return;            }        }            }        /**    * The doPost method of the servlet. <br>    *    * This method is called when a form has its tag value method equals to post.    *     * @param request the request send by the client to the server    * @param response the response send by the server to the client    * @throws ServletException if an error occurred    * @throws IOException if an error occurred    */    public void doPost(HttpServletRequest request, HttpServletResponse response)        throws ServletException, IOException    {        this.doGet(request, response);    }    }
  $.ajaxSetup({                 contentType:"application/x-www-form-urlencoded;charset=utf-8",                 complete:function(XMLHttpRequest,textStatus){                       //通过XMLHttpRequest取得响应头,sessionstatus,                      var sessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus");                         if(sessionstatus=="nologin"){                                     //如果超时就处理 ,指定要跳转的页面                                    window.location.replace("${path}/common/login.do");                                    }                         }                }               });  


0 0
原创粉丝点击