webix+springmvc session超时跳转登录页面

前端之家收集整理的这篇文章主要介绍了webix+springmvc session超时跳转登录页面前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

引言

最近做项目,发现ajax请求不能在服务器中直接重定向登录页面。查了些资料发现jquery的ajax请求有人给出了方法。但是webix的ajax请求和jquery的有些区别。这里模仿jquery的处理方式实现webix的ajax请求session超时跳转

具体的做法:

1、查看webix.js源码发现webix.ajax只有请求前的监听函数 "onBeforeAjax", 要做到获取返回状态跳转登录页面必须要有个返回的监听函数,但是源码没有。所以我修改了下源码,加了个返回的监听函数"onAfterAjax"。

红色标记部分是我加的代码,当检测到ajax完成时,自动执行"onAfterAjax"。(代码的位置可以搜索webix.js ,条件"onBeforeAjax",然后在对应的位置加入红色代码就行

= 400 || 0 === a.status; "blob" == a.responseType || "arraybuffer" == a.responseType ? (t = "",e = a.response) : (t = a.responseText || "",e = x.J(a)),webix.ajax.$callback(s,i,r) } x && (x.master = null),i = x = n = null } },this.qh && (a.timeout = this.qh),this.H ? a.send(e || null) : setTimeout(function () { a.aborted || (-1 != webix.ly.find(a) ? webix.ly.remove(a) : a.send(e || null)); },1),this.master && this.master.Ve && this.master.Ve.push(a),this.H ? a : r }

2、webix.ajx请求没有明显的标志,jquery.ajax的标识是x-requested-with ,所以我模拟给了个标识requestFlag="webix"(可以自己设置个喜欢的),用"onBeforeAjax"设置

3、监听返回状态

4、后台代码

4.1 拦截代码

登录 if (request.getHeader("requestFlag") != null && request.getHeader("requestFlag").equalsIgnoreCase( "webix")) { // 如果是ajax请求响应头会有,requestFlag response.setHeader("sessionstatus","timeout");// 在响应头设置session状态 } else { response.sendRedirect(request.getContextPath() + "/login"); } return false; } return true; } }

4.2 spring配置文件加入拦截器配置

4.3 在F12控制台执行下webix.ajax查看效果

以上所述是小编给大家介绍的webix+springmvc session超时跳转登录页面,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的。

原文链接:https://www.f2er.com/springmvc/44773.html

猜你在找的SpringMVC相关文章