Web 开发中Ajax的Session 超时处理方法


Posted in Javascript onJanuary 19, 2017

在 Java Web 开发中,当session超时的情况下,普通页面的跳转好处理。关于Ajax的请求超时处理,就需要特殊处理下了。

先写一个统一的过滤器,或者拦截器,针对Ajax请求进行过滤处理,下面示例以Filter为例:

public void doFilter(ServletRequest request, ServletResponse response,
      FilterChain chain) throws IOException, ServletException {
    HttpServletRequest servletRequest=(HttpServletRequest)request;
    HttpServletResponse servletResponse=(HttpServletResponse)response;
    // 判断是否是 Ajax 请求,因为 Ajax 请求会追加 x-requested-with=XMLHttpRequest
    if("XMLHttpRequest".equalsIgnoreCase(servletRequest.getHeader("x-requested-with"))){
      servletResponse.addHeader("sessionstatus", "timeout");
    }    
    // 后续代码省略......
  }

然后在页面上调用使用Ajax的时候,捕获结果进行超时处理,如下:

// 全局的ajax访问,处理ajax清求时sesion超时
$.ajaxSetup({
  type: POST,
  contentType:"application/json;charset=utf-8",
  // 使用 complete 捕获结果,做超时处理
  complete: function (XMLHttpRequest, textStatus) {
    var data = XMLHttpRequest.responseText;
    if (data == "timeout") {
      if( window.top != window.self ){
        window.top.location = "${pageContext.request.contextPath}";
      }
    }
  }
});

根据 Header 判断是否是 Ajax 请求,如果是 Ajax 就丢出一个状态码。

这段处理的 js 代码,可以提取为一个方法,这样方便在其他地方直接使用。

以上这篇Web 开发中Ajax的Session 超时处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 简练的几个函数
Aug 29 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
Nov 23 Javascript
jquery中的查找parents与closest方法之间的区别
Dec 02 Javascript
函数window.open实现关闭所有的子窗口
Aug 03 Javascript
移动端点击图片放大特效PhotoSwipe.js插件实现
Aug 25 Javascript
JavaScript 控制字体大小设置的方法
Nov 23 Javascript
基于JavaScript实现自动更新倒计时效果
Dec 19 Javascript
解析Vue2.0双向绑定实现原理
Feb 23 Javascript
ES6新特性之解构、参数、模块和记号用法示例
Apr 01 Javascript
微信小程序实现滑动删除效果
May 19 Javascript
js匿名函数使用&传参(实例)
Sep 08 Javascript
express默认日志组件morgan的方法
Apr 05 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
Jan 19 #Javascript
使用JavaScript触发过渡效果的方法
Jan 19 #Javascript
详解支持Angular 2的表格控件
Jan 19 #Javascript
原生JS实现几个常用DOM操作API实例
Jan 19 #Javascript
JS生成一维码(条形码)功能示例
Jan 19 #Javascript
EasyUi 打开对话框后控件赋值及赋值后不显示的问题解决办法
Jan 19 #Javascript
javascript中json基础知识详解
Jan 19 #Javascript
You might like
php中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
PHP获取当前页面URL函数实例
2014/10/22 PHP
PHP类的特性实例分析
2016/09/28 PHP
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
AeroWindow 基于JQuery的弹出窗口插件
2011/06/27 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
JS基础随笔(菜鸟必看篇)
2016/07/13 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
关于js原型的面试题讲解
2016/09/25 Javascript
最好用的Bootstrap fileinput.js文件上传组件
2016/12/12 Javascript
Django使用多数据库的方法
2017/09/06 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
2019/06/10 jQuery
Node.js开发之套接字(socket)编程入门示例
2019/11/05 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
python中利用xml.dom模块解析xml的方法教程
2017/05/24 Python
Django model反向关联名称的方法
2018/12/15 Python
Python中的 enum 模块源码详析
2019/01/09 Python
对python 多线程中的守护线程与join的用法详解
2019/02/18 Python
python实现简单日期工具类
2019/04/24 Python
详解python中index()、find()方法
2019/08/29 Python
Python configparser模块配置文件过程解析
2020/03/03 Python
如何卸载python插件
2020/07/08 Python
python 实现批量图片识别并翻译
2020/11/02 Python
CSS3实现莲花绽放的动画效果
2020/11/06 HTML / CSS
英国剑桥包中文官网:The Cambridge Satchel Company中国
2018/11/06 全球购物
运动会开幕式解说词
2014/02/05 职场文书
企业文化标语大全
2014/06/10 职场文书
租房安全协议书
2014/08/20 职场文书
检查机关党的群众路线个人整改措施
2014/10/04 职场文书
街道党工委党的群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
地雷战观后感
2015/06/09 职场文书
小学大队干部竞选稿
2015/11/20 职场文书
三严三实学习心得体会(精选N篇)
2016/01/05 职场文书
劳务派遣管理制度(样本)
2019/08/23 职场文书
Java数据开发辅助工具Docker与普通程序使用方法
2021/09/15 Java/Android
Python中的socket网络模块介绍
2022/07/23 Python