hmy123cq3
道斯
采纳率22.2%
2018-06-08 07:18 阅读 2.9k

Jq ajax请求后台之前,如何判断是否登录超时(登录账号存在session中的)

5

Jq ajax请求后台之前,如何判断是否登录超时(登录账号存在session中的)?
本人现在是请求到后台方法中判断,返回超时标示的。但是这种方式需要在每个方法里都写判断,太麻烦了!
有全局的设置吗,让每个ajax请求前都先触发判断是否session超时?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

9条回答 默认 最新

  • 已采纳
    wangjinnan16 wangjinnan16 2018-06-08 08:20

    登录是否超时一般由后台统一判断,然后返回给前台是否登录超时的标识。

    点赞 评论 复制链接分享
  • showbo GoCityPass新加坡曼谷通票 2018-06-08 07:40

    你什么语言也没说。asp.net在global.ascx中配置Application_BeginRequest,每个请求都经过这里,在这里检查session是否过期。

    其他语言或者环境自己检查下,应该都有对应的方法

    点赞 2 评论 复制链接分享
  • a718089112 a718089112 2018-06-08 07:45

    这个一般使用过滤器实现的,实现一次就能拦截所有请求,。

    java的话参考:https://blog.csdn.net/justinqin/article/details/79178725

    点赞 1 评论 复制链接分享
  • qq_32580591 qq_32580591 2018-06-08 07:21

    根据设置的cookies 超时时间判断

    点赞 评论 复制链接分享
  • hmy123cq3 道斯 2018-06-08 07:22

    不根据session吗?
    但是我cookies中设置了记忆用户名和密码功能!

    点赞 评论 复制链接分享
  • AirJoker AirJoker 2018-06-08 07:24

    一般的session会存在redis中,redis中设置一个超时时间,或者你设置一个时间,超时了就删除掉,请求过来的时候,回传过来session_id,如果session被删除掉了,没有匹配的session_id,那么就可以认为是请求超时了。个人理解。

    点赞 评论 复制链接分享
  • teng666 IT人生终不悔 2018-06-08 07:30

    获取下对应的key值,如果存在说明session没有过期

    点赞 评论 复制链接分享
  • weixin_38652136 邪恶八进制 2018-06-08 07:38

    全局解决方法:
    1、可以使用Spring 的AOP将判断语句重构为一个方法,然后切入到需要的ajax方法中。

    2、使用jquery提供的ajaxSetup函数:

     //全局的ajax访问,处理ajax清求时sesion超时
    
         $.ajaxSetup({ 
    
                 contentType:"application/x-www-form-urlencoded;charset=utf-8", 
    
                 complete:function(XMLHttpRequest,textStatus){ 
    
                         var sessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus"); //通过XMLHttpRequest取得响应头,sessionstatus,
    
                         if(sessionstatus=="timeout"){  //如果超时就处理 ,指定要跳转的页面
    
                                             window.location.replace("${path}/common/login.do"); 
    
                                     } 
    
                          } 
    
                 } 
    
          });
    
    点赞 评论 复制链接分享
  • weixin_38800446 iru 2018-06-08 09:36

    后台拦截器统一判断,并设置全局返回码,比如{code: 1, msg: "未登录"}

    前端可以定义一个全局方法,把返回值先交给它处理,比如

    codeHandle(res) {
        if (res.code === 1) {
            提示未登录
        }
        return res
    } 
    

    在每个地方调用

    前端请求如果是用axios,可以在axios的请求拦截器和相应拦截器处理

    点赞 评论 复制链接分享

相关推荐