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 如果改变span标签的是否隐藏属性
Oct 06 Javascript
js对table的td进行相同内容合并示例详解
Dec 27 Javascript
javascript实现倒计时N秒后网页自动跳转代码
Dec 11 Javascript
JavaScript中Function函数与Object对象的关系
Dec 17 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
Mar 08 Javascript
jQuery 3.0 的 setter和getter 模式详解
Jul 11 Javascript
javascript表单控件实例讲解
Sep 13 Javascript
jQuery上传插件webupload使用方法
Aug 01 jQuery
原生JavaScript实现Ajax异步请求
Nov 19 Javascript
JS实现验证码倒计时的注册页面
Jan 02 Javascript
对node通过fs模块判断文件是否是文件夹的实例讲解
Jun 10 Javascript
vue-resource 拦截器interceptors使用详解
Jan 18 Vue.js
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
用文本文件实现的动态实时发布新闻的程序
2006/10/09 PHP
PHP中对用户身份认证实现两种方法
2011/06/04 PHP
php中的curl使用入门教程和常见用法实例
2014/04/10 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
THinkPHP获取客户端IP与IP地址查询的方法
2016/11/14 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
jquery.fileEveryWhere.js 一个跨浏览器的file显示插件
2011/10/24 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
Jquery实现仿京东商城省市联动菜单
2015/11/19 Javascript
基于jquery实现日历签到功能
2020/09/11 Javascript
jQuery css() 方法动态修改CSS属性
2016/09/25 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
2017/04/28 jQuery
angular+webpack2实战例子
2017/05/23 Javascript
js评分组件使用详解
2017/06/06 Javascript
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
DWR内存兼容及无法调用问题解决方案
2020/10/16 Javascript
python中实现精确的浮点数运算详解
2017/11/02 Python
django框架之cookie/session的使用示例(小结)
2018/10/15 Python
Python关于excel和shp的使用在matplotlib
2019/01/03 Python
使用Django2快速开发Web项目的详细步骤
2019/01/06 Python
使用Python 统计高频字数的方法
2019/01/31 Python
Python pandas 列转行操作详解(类似hive中explode方法)
2020/05/18 Python
浅谈tensorflow 中的图片读取和裁剪方式
2020/06/30 Python
blueseventy官网:铁人三项和比赛泳衣
2021/02/06 全球购物
俄罗斯连接商品和买家的在线平台:goods.ru
2020/11/30 全球购物
汽车销售顾问求职自荐信
2014/01/01 职场文书
网上签名寄语活动留言
2014/01/18 职场文书
工会换届选举方案
2014/05/21 职场文书
2014年商场国庆节活动策划方案
2014/09/16 职场文书
妈妈再爱我一次观后感
2015/06/08 职场文书
2016年中学法制宣传日活动总结
2016/04/01 职场文书
有关花店创业的计划书模板
2019/08/27 职场文书
你有一份《诚信考试承诺书》待领取
2019/11/13 职场文书
Python实现8种常用抽样方法
2021/06/27 Python
Python编写冷笑话生成器
2022/04/20 Python