• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    重写 ajax 实现 session 超时跳转到登录页面实例代码

    问题:使用window.location.href来跳转页面的时候,后端只需实现一个过滤器就可以在session超时的情况下重定向到登陆页面。但是使用ajax呢?使用ajax来执行会发生302错误,并且页面不可能跳转。下面就针对这个问题来贴上我的前后端代码。

    1、session过滤器

    import java.io.IOException;
    p style="text-align: center">img alt=""import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    p style="text-align: center">img alt=""public class SessionFilter implements Filter {
    p style="text-align: center">img alt="" public void doFilter(ServletRequest req, ServletResponse res, FilterChain filterChain)
       throws IOException, ServletException {
      HttpServletRequest request = (HttpServletRequest) req;
      HttpServletResponse response = (HttpServletResponse) res;
    p style="text-align: center">img alt=""  String requestUri = request.getRequestURI();
    p style="text-align: center">img alt=""  if (requestUri.indexOf("/login.html") > 0 || requestUri.indexOf("/system/login") > 0) {
       return ;
      }
    p style="text-align: center">img alt=""  HttpSession session = request.getSession(false);
    p style="text-align: center">img alt=""  if (session == null) {
       // 如果是session超时,在此处做处理。
       response.sendRedirect(request.getContextPath() + "/login.html");
       return ;
      }
      try {
       filterChain.doFilter(request, response);
      } catch (Exception e) {
       e.printStackTrace();
      }
      return ;
     }
    }

    2、web.xml添加配置:

    filter>
      filter-name>sessionFilter/filter-name>
      filter-class>com.manager.filter.SessionFilter/filter-class>
    /filter>
    filter-mapping>
      filter-name>sessionFilter/filter-name>
      url-pattern>/manager/*/url-pattern>
    /filter-mapping>

    *3、重写ajax

    注意:此段代码放在index页

    jQuery(function($){
       var _ajax=$.ajax;
       $.ajax=function(opt){
        var _success = opt  opt.success || function(a, b){};
        var _opt = $.extend(opt, {
         success:function(data, textStatus){
          _success(data, textStatus); 
         },
         error:function(XMLHttpRequest, textStatus, errorThrown){
          //alert(XMLHttpRequest.responseText);
          //如果请求发生错误,会返回登陆页面源代码,如果源代码里面存在lovnx这个字符串,前端就重定向到登陆页面
          var reData = XMLHttpRequest.responseText + "";
          if(reData.indexOf('lovnx') != -1) {
           window.location.href="/manager/login.html" rel="external nofollow" ;
           return;
          }
         }
        });
        return _ajax(_opt);
       };
      });

    4、登陆页面添加代码

    input type="hidden" value="lovnx">

    以上所述是小编给大家介绍的重写 ajax 实现 session 超时跳转到登录页面实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    您可能感兴趣的文章:
    • ajax编写简单的登录页面
    • Ajax Session失效跳转登录页面的方法
    • 登录超时给出提示跳到登录页面(ajax、导入、导出)
    • 一款经典的ajax登录页面 后台asp.net
    • ajax实现简单登录页面
    上一篇:Ajax配合Spring实现文件上传功能代码
    下一篇:前端ajax的各种与后端交互的姿势
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    重写 ajax 实现 session 超时跳转到登录页面实例代码 重写,ajax,实现,session,超时,