全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

使用Ajax时处理用户session失效问题的解决方法

在使用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小时内与您取得联系。