记录问题:登录session过期,ajax请求被web security拦截,页面没有数据且没有重定向到login页面

1.问题

背景:项目是springboot框架,用了web security拦截请求,控制用户权限

项目有一个页面,点击分类按钮,发送ajax请求后台获取数据并局部刷新数据。当session过期时,点击分类按钮,请求会被拦截转为“/login”,但由于是ajax,页面实际并不会刷新而转向login页面,于是页面数据也全部变为undefinde,手动刷新页面才会到登录界面。

2.解决:ajax请求成功会返回请求数据对象,如果session过期,请求不会发送到事务处理器,也就不会有返回数据,根据这一点在JS中判断并进行页面重定向操作。

$.ajax({			
    url:'/xx?id='+id,
    type:'get',
    success:function(data,status,xhr){
    if(xhr.responseJSON!==undefined){
            drawTable(data);					
        }else{
	    window.location.href="/login";//没有返回json数据则跳转到登录界面
        }
    }
});	

下面是打印的xhr参数,如果返回了数据就会有responseJSON参数,反之就是被拦截了(这个项目被websecurity拦截)

3.总结:这个问题应该可以在后端解决,刚学的springboot,小白一只,这个方法只是暂时满足需求,后面可能会有问题或者有更好的方法,再改~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值