在使用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
相关文章:
设计网站制作公司有哪些,制作网页教程?
香港服务器如何优化才能显著提升网站加载速度?
如何选择香港主机高效搭建外贸独立站?
智能起名网站制作软件有哪些,制作logo的软件?
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
建站VPS选购需注意哪些关键参数?
大型企业网站制作流程,做网站需要注册公司吗?
装修招标网站设计制作流程,装修招标流程?
建站之星如何一键生成手机站?
建站之星安装后如何自定义网站颜色与字体?
建站之家VIP精选网站模板与SEO优化教程整合指南
C#怎么使用委托和事件 C# delegate与event编程方法
如何在阿里云服务器自主搭建网站?
北京企业网站设计制作公司,北京铁路集团官方网站?
七夕网站制作视频,七夕大促活动怎么报名?
宝塔建站无法访问?如何排查配置与端口问题?
盘锦网站制作公司,盘锦大洼有多少5G网站?
建站主机默认首页配置指南:核心功能与访问路径优化
如何做静态网页,sublimetext3.0制作静态网页?
如何快速搭建FTP站点实现文件共享?
建站之星CMS五站合一模板配置与SEO优化指南
SQL查询语句优化的实用方法总结
如何在Golang中使用replace替换模块_指定本地或远程路径
清除minerd进程的简单方法
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
如何在腾讯云免费申请建站?
如何用西部建站助手快速创建专业网站?
韩国服务器如何优化跨境访问实现高效连接?
建站上传速度慢?如何优化加速网站加载效率?
jQuery 常见小例汇总
如何正确下载安装西数主机建站助手?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
网站制作网站,深圳做网站哪家比较好?
建站之星伪静态规则如何正确配置?
如何通过虚拟机搭建网站?详细步骤解析
建站之星安装提示数据库无法连接如何解决?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
临沂网站制作企业,临沂第三中学官方网站?
建站之星免费模板:自助建站系统与智能响应式一键生成
如何通过wdcp面板快速创建网站?
如何选择CMS系统实现快速建站与SEO优化?
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
Python文件管理规范_工程实践说明【指导】
如何基于PHP生成高效IDC网络公司建站源码?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
相册网站制作软件,图片上的网址怎么复制?
如何正确选择百度移动适配建站域名?
h5网站制作工具有哪些,h5页面制作工具有哪些?
*请认真填写需求信息,我们会在24小时内与您取得联系。