springmvc拦截器面对ajax时的处理
来源:互联网 发布:star打印机打印端口 编辑:程序博客网 时间:2024/06/03 23:40
前面说过,当前台是ajax传过来的请求的时候拦截器并不能跳转,原因可想而知了,因为ajax是局部的,不管是成功还是失败都会由ajax的的成功或者失败函数的进行处理。
没看过的可查看另一篇文章http://blog.csdn.net/make__it/article/details/78840576
那我们就需要区分传过来的请求是否是ajax请求,然后将Url的转发交给前台来做
原理:ajax请求会先发送一个请求头,判断正确后才发送真正的请求
代码如下
1.后台代码
@Overridepublic boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {// TODO Auto-generated method stubif (req.getHeader("x-requested-with") != null && req.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){ //如果是ajax请求响应头会有x-requested-with PrintWriter out = resp.getWriter(); out.print("loseSession");//session失效 out.flush(); return false; }//当请求去的是登陆页面就直接放行if(arg0.getRequestURI().contains("login")){return true;}HttpSession session= arg0.getSession();String username=(String) session.getAttribute("username"); if(username!=null){return true;}//跳转到登陆界面进行登陆arg0.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(arg0, arg1);return false;}2.前台代码
$("test").click(function(){ data = ...; $.ajax({ type: "POST", url: "../query.do", data:data, dataType: "json", success:function(data){ //成功的处理 } error:function(data){ if(data.responseText=='loseSession'){ //在这个地方进行跳转 } } });
阅读全文
0 0
- springmvc拦截器面对ajax时的处理
- springMVC拦截器处理ajax请求及数据返回
- springMVC拦截器处理ajax请求及数据返回
- springmvc拦截器针对ajax()请求的带特殊请求头的处理
- springmvc拦截器处理
- 关于session失效时springmvc拦截器拦截ajax请求失败的问题
- SpringMvc拦截器登录处理
- 关于Jquery版本的Ajax和SpringMVC拦截器(Interceptor)
- springMVC处理ajax请求时的404
- springmvc的拦截器
- springMVC的拦截器
- springmvc的拦截器
- SpringMVC的拦截器
- springmvc的拦截器
- SpringMVC的拦截器
- SpringMVC的拦截器
- springMVC的拦截器
- SpringMvc的拦截器
- mybatis if标签判断字符串相等
- 例7.12 用选择法对数组中10个整数按由小到大排序。
- Qt之QSS语法样式及编辑器
- Markdown编辑器测试2
- 在flask中使用jsonify和json.dumps的区别
- springmvc拦截器面对ajax时的处理
- 49. Group Anagrams
- CUSBoost:基于聚类的提升下采样的非平衡数据分类
- codeforces 344A Magnets
- Hibernate之集合配置
- 图像金字塔
- java数据类型
- UML图
- sql server 文件类型