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 中的事件教程
Apr 05 Javascript
javascript语言结构小记(一)
Sep 10 Javascript
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
Nov 11 Javascript
CSS鼠标响应事件经过、移动、点击示例介绍
Sep 04 Javascript
如何创建一个JavaScript弹出DIV窗口层的效果
Sep 25 Javascript
超详细的javascript数组方法汇总
Nov 21 Javascript
jQuery CSS3相结合实现时钟插件
Jan 08 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
Apr 13 Javascript
javascript 的变量、作用域和内存问题
Apr 19 Javascript
jquery实现图片上传前本地预览
Apr 28 jQuery
React Hooks 实现和由来以及解决的问题详解
Jan 17 Javascript
vue跳转页面的几种方法(推荐)
Mar 26 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数组合并与拆分实例分析
2015/06/12 PHP
在Mac上编译安装PHP7的开发环境
2015/07/28 PHP
PHP实现通过URL提取根域名
2016/03/31 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
2019/02/28 PHP
用js判断用户浏览器是否是XP SP2的IE6
2007/03/08 Javascript
jQuery之自动完成组件的深入解析
2013/06/19 Javascript
浮动的div自适应居中显示的js代码
2013/12/23 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
2015/02/23 Javascript
node.js+express制作网页计算器
2016/01/17 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
基于JS实现9种不同的面包屑和分布式多步骤导航效果
2017/02/21 Javascript
JavaScript实现弹窗效果代码分析
2017/03/09 Javascript
js分页之前端代码实现和请求处理
2017/08/04 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
2018/03/05 Javascript
vue props传值失败 输出undefined的解决方法
2018/09/11 Javascript
微信小程序模板template简单用法示例
2018/12/04 Javascript
JS利用prototype给类添加方法操作详解
2019/06/21 Javascript
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
jquery插件实现轮播图效果
2020/10/19 jQuery
python批量替换多文件字符串问题详解
2018/04/22 Python
Python跳出多重循环的方法示例
2019/07/03 Python
python画图——实现在图上标注上具体数值的方法
2019/07/08 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
2019/10/11 Python
如何通过Python3和ssl实现加密通信功能
2020/05/09 Python
浅谈anaconda python 版本对应关系
2020/10/07 Python
Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能
2020/12/21 Python
jupyter 添加不同内核的操作
2021/02/06 Python
加拿大最大的书店:Indigo
2017/01/01 全球购物
Herschel美国官网:背包、手提袋及配件
2020/03/10 全球购物
单位工程竣工验收方案
2014/03/16 职场文书
重大事项社会稳定风险评估方案
2014/06/15 职场文书
机电一体化应届生求职信
2014/08/09 职场文书
解除施工合同协议书
2014/10/17 职场文书
python引入其他文件夹下的py文件具体方法
2021/05/23 Python
利用正则表达式匹配浮点型数据
2022/05/30 Java/Android
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技