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 相关文章推荐
js substring从右边获取指定长度字符串(示例代码)
Dec 23 Javascript
js或jquery实现页面打印可局部打印
Mar 27 Javascript
javascript三元运算符用法实例
Apr 16 Javascript
js拆分字符串并将分割的数据放到数组中的方法
May 06 Javascript
简单谈谈javascript Date类型
Sep 06 Javascript
javascript实现C语言经典程序题
Nov 29 Javascript
Angular4 中内置指令的基本用法
Jul 31 Javascript
bootstrap轮播模板使用方法详解
Nov 17 Javascript
js中el表达式的使用和非空判断方法
Mar 28 Javascript
vue如何解决循环引用组件报错的问题
Sep 22 Javascript
vue和小程序项目中使用iconfont的方法
May 19 Javascript
vant 自定义 van-dropdown-item的用法
Aug 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 json_encode中文乱码问题的解决办法
2013/09/09 PHP
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
node.js中的events.emitter.listeners方法使用说明
2014/12/10 Javascript
JS 循环li添加点击事件 (闭包的应用)
2016/12/10 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
小程序分享模块超级详解(推荐)
2019/04/10 Javascript
jQuery表单校验插件validator使用方法详解
2020/02/18 jQuery
vue输入框使用模糊搜索功能的实现代码
2020/05/26 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 大神专访第二弹!
2014/05/20 DOTA
[01:07:47]Secret vs Optic Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
[49:05]Newbee vs TNC 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
wxpython 最小化到托盘与欢迎图片的实现方法
2014/06/09 Python
Python中的random()方法的使用介绍
2015/05/15 Python
Python中每次处理一个字符的5种方法
2015/05/21 Python
浅谈scrapy 的基本命令介绍
2017/06/13 Python
对python函数签名的方法详解
2019/01/22 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
2019/06/21 Python
在keras中model.fit_generator()和model.fit()的区别说明
2020/06/17 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
Ubuntu20.04环境安装tensorflow2的方法步骤
2021/01/29 Python
HTML5本地存储之Web Storage详解
2016/07/04 HTML / CSS
英国二手物品交易网站:Preloved
2017/10/06 全球购物
英国排名第一的在线宠物用品商店:Monster Pet Supplies
2018/05/20 全球购物
屈臣氏俄罗斯在线商店:Watsons俄罗斯
2020/08/03 全球购物
扩大国家免疫规划实施方案
2014/03/21 职场文书
求职信怎么写
2014/05/23 职场文书
中秋手机店促销方案
2014/06/16 职场文书
应届本科毕业生求职信
2014/07/23 职场文书
护士个人年度总结范文
2015/02/13 职场文书
总经理助理岗位职责范本
2015/03/31 职场文书
《蚂蚁和蝈蝈》教学反思
2016/02/22 职场文书
JS ES6异步解决方案
2021/04/29 Javascript
深入理解python协程
2021/06/15 Python
linux下安装redis图文详细步骤
2021/12/04 Redis
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技