在使用spingMVC的拦截器来处理用户session失效的问题时,当用户session失效会返回一串javascript字符串强制用户浏览器跳转至登录页面。然而当使用Ajax请求数据时,在验证失败后只会响应一串字符串,JavaScript并不会执行,这是由于Ajax的请求是由XMLHTTPRequest对象发起的而不是浏览器,在验证失败后服务器返回的信息会被XMLHTTPRequest对象接收到并保存在js对象中。

为了应对这种情况,可以在后台对Http请求先进行判断,将Ajax请求与普通http请求分开处理。
观察Ajax发送的请求头信息可以发现,Ajax请求的头信息中会带有X-Requested-With:XMLHttpRequest,通过这个可以判断是否是Ajax请求。
String requestType = request.getHeader("X-Requested-With");
if(requestType != null && "XMLHttpRequest".equalsIgnoreCase(requestType.trim())) {
//如果是ajax请求
response.setHeader("sessionStatus", "timeout");
response.sendError(601, "session timeout.");
return false;
}
javascript代码,可以设置Ajax请求的全局默认options,一劳永逸
//设置Ajax请求的全局默认options
jQuery.ajaxSetup({
type:'post',
complete:function(xhr, ts){ //XMLHttpRequest, textStatus
var sessionStatus = xhr.getResponseHeader('sessionstatus');
if(sessionStatus == 'timeout') {
alert('页面过期,请重新登录!');
window.top.location.href = 'Login.htm';
}
}
});
项目中还使用到了DataTables做数据表格,发现用上边javascript的配置方法在datatables中不能生效,错误信息参见:http://datatables.net/tn/7 要配置ajax的error属性才可以
$('#example').dataTable( {
"ajax": {
"url": "findRoles.htm",
"type": "POST",
"error": function(xhr, ts, et) { //XMLHttpRequest, textStatus, errorThrown
var sessionStatus = xhr.getResponseHeader('sessionstatus');
if(sessionStatus == 'timeout') {
alert('页面过期,请重新登录!');
window.top.location.href = 'Login.htm';
}
}
}
});
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Ajax
# session
# 失效
# express如何解决ajax跨域访问session失效问题详解
# 完美解决ajax访问遇到Session失效的问题
# ajax 操作全局监测
# 用户session失效的解决方法
# Ajax Session失效跳转登录页面的方法
# ajax在兼容模式下失效的快速解决方法
# Ajax请求session失效该如何解决
# 如何解决ajax在google chrome浏览器上失效
# ajax请求Session失效问题
# ajax更新数据后
# jquery、jq失效问题
# 解决IE9下JQuery发送ajax请求失效的方法
# 这是
# 是由
# 只会
# 才可以
# 这种情况
# 跳转
# 错误信息
# 中会
# 大家多多
# 象中
# 而不是
# 并保存
# 判断是否
# 拦截器
# request
# requestType
# brush
# class
# String
# getHeader
相关文章:
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
如何在万网ECS上快速搭建专属网站?
图册素材网站设计制作软件,图册的导出方式有几种?
建站三合一如何选?哪家性价比更高?
详解jQuery停止动画——stop()方法的使用
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
定制建站价位费用解析与套餐推荐全攻略
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
,如何利用word制作宣传手册?
实现虚拟支付需哪些建站技术支撑?
制作公司内部网站有哪些,内网如何建网站?
,南京靠谱的征婚网站?
内部网站制作流程,如何建立公司内部网站?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
建站之星代理如何获取技术支持?
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
开心动漫网站制作软件下载,十分开心动画为何停播?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
如何快速查询网址的建站时间与历史轨迹?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
郑州企业网站制作公司,郑州招聘网站有哪些?
装修招标网站设计制作流程,装修招标流程?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
如何构建满足综合性能需求的优质建站方案?
如何用AWS免费套餐快速搭建高效网站?
江苏网站制作公司有哪些,江苏书法考级官方网站?
linux top下的 minerd 木马清除方法
网站制作话术技巧,网站推广做的好怎么话术?
临沂网站制作公司有哪些,临沂第四中学官网?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
微信小程序 五星评分(包括半颗星评分)实例代码
如何彻底卸载建站之星软件?
如何快速搭建支持数据库操作的智能建站平台?
建站主机是否属于云主机类型?
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
SQL查询语句优化的实用方法总结
5种Android数据存储方式汇总
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
制作网站的基本流程,设计网站的软件是什么?
无锡营销型网站制作公司,无锡网选车牌流程?
金*站制作公司有哪些,金华教育集团官网?
*服务器网站为何频现安全漏洞?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
建站之星展会模板:智能建站与自助搭建高效解决方案
定制建站策划方案_专业建站与网站建设方案一站式指南
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
Android使用GridView实现日历的简单功能
宝塔面板创建网站无法访问?如何快速排查修复?
如何在建站主机中优化服务器配置?
*请认真填写需求信息,我们会在24小时内与您取得联系。