zoukankan      html  css  js  c++  java
  • 解决拦截器对ajax请求的的拦截

    拦截器配置:

    public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object obj) throws Exception {
            
            //获取判定登陆的session是否存在
            String token = (String) request.getSession().getAttribute("token");
            String postId = (String) request.getSession().getAttribute("postId");
            if(token == null || token == ""){
                String XRequested =request.getHeader("X-Requested-With");
                if("XMLHttpRequest".equals(XRequested)){
                    response.getWriter().write("IsAjax");
                }else{
                    response.sendRedirect("/m-web/user/toLogin");
                }
                return false;
            }
            if(postId == null || postId == ""){
                String XRequested =request.getHeader("X-Requested-With");
                if("XMLHttpRequest".equals(XRequested)){
                    response.getWriter().write("IsAjax");
                }else{
                    response.sendRedirect("/m-web/user/toLogin");
                }
                return false;
            }
            return true;
        }

    1、判断 String XRequested =request.getHeader("X-Requested-With") 的值,目的是判断是否是ajax请求。

    2、response.getWriter().write("IsAjax");写出一个响应的数据给ajax,这样就可以在ajax里面做判断

      判断的方式存在两种方式:

      1)直接在ajax里面做判断(不建议)

    success:function(data){
        if(data == "IsAjax"){
            window.location.href="m-web/user/toLogin"
            return;
        }
    }

      2)改jQuery源码然后在做压缩,是针对全局的方式来修改的(建议)

          if ( isSuccess ) {// if no content
                    if ( status === 204 || s.type === "HEAD" ) {
                        statusText = "nocontent";
    
                    // if not modified
                    } else if ( status === 304 ) {
                        statusText = "notmodified";
    
                    // If we have data, let's convert it
                    } else {
                        statusText = response.state;
                        success = response.data;
                        error = response.error;
                        isSuccess = !error;
                        //解决ajax拦截问题
                        var result = responses.text;
                        if(result.indexOf("IsAjax")>=0){
                            window.location.href="m-web/user/toLogin";
                            return;
                        }
                    }
                }
  • 相关阅读:
    增加samba用户提示Failed to add entry for user
    二叉树
    excel技巧
    mongodb导入json文件
    mongodb导出数据csv格式
    mongoexport导出csv中文乱码
    左连接,结果大于左面的表验证 解释
    plsql 用法和技巧
    对javaNI和NIO理解
    TinyMCE4.x整合教程-Xproer.WordPaster
  • 原文地址:https://www.cnblogs.com/ll409546297/p/6203403.html
Copyright © 2011-2022 走看看