全网整合营销服务商

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

免费咨询热线: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 


相关文章: 怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  如何在万网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小时内与您取得联系。