这次给大家带来Ajax处理用户session失效,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.");

returnfalse;

}

javascript代码,可以设置Ajax请求的全局默认options,一劳永逸//设置Ajax请求的全局默认options

jQuery.ajaxSetup({

type:'post',

complete:function(xhr, ts){//XMLHttpRequest, textStatus

varsessionStatus = xhr.getResponseHeader('sessionstatus');

if(sessionStatus =='timeout') {

alert('页面过期,请重新登录!');

window.top.location.href ='Login.htm'

}

}

});

项目中还使用到了DataTables做数据表格,发现用上边javascript的配置方法在datatables中不能生效,错误信息参见:http://datatables.net/tn/7 要配置ajax的error属性才可以

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

php ajax session,Ajax处理用户session失效相关推荐

  1. 解决AJAX在用户登录失效后返回登录页面的问题

    后端AJAX API,Session过期,登录失效,直接跳转(redirect)到登录页.(后端Shiro.Spring Security等都支持这个功能) 对于全站AJAX的应用,当然不存在redi ...

  2. ajax得到session,Ajax如何使用Session

    在Ajax中有时会使用到Session,在aspx.cs文件这样获取: string name = Session["name"]; 但是在Ajax中就不能这样获取Session, ...

  3. java session失效之后跳转_详解springmvc控制登录用户session失效后跳转登录页面

    springmvc控制登录用户session失效后跳转登录页面,废话不多少了,具体如下: 第一步,配置 web.xml 15 第二步,配置spring-mvc.xml 第三步,写拦截器SystemSe ...

  4. ajax获取session值_cookie和session基础知识学习

    一.session的简单使用 session是服务器端技术,服务器在运行时可以为每一个用户的浏览器创建一个独享的session对象. session的使用步骤: 获取session对象 使用sessi ...

  5. 酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章)...

    酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章) 最近手头在开发一个游戏官网,在支付模块采用神州付技术支持,神州付数据表单中要求提供服务器返回地址和 ...

  6. 域名,COOKIE是什么?有什么用处?COOKIE SESSION的区别?COOKIE的失效期?

    这里是修真院web小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解web知识/技能,本篇分享的是: [域名,COO ...

  7. 巧用Ajax的beforeSend 提高用户体验--防止重复数据

    巧用Ajax的beforeSend 提高用户体验 jQuery是经常使用的一个开源js框架,其中的$.ajax请求中有一个beforeSend方法,用于在向服务器发送请求前执行一些动作. 具体可参考j ...

  8. PHP 实现多网站共享用户SESSION 数据解决方案

    PHP 实现多网站共享用户SESSION 数据解决方案 来源URL:http://blog.csdn.net/dongdongzzcs/article/details/6906613 一.问题起源 稍 ...

  9. Ajax+asp.net实现用户登陆 转自http://www.shangxueba.com/jingyan/2933319.html

    这篇文章主要介绍了Ajax+asp.net实现用户登陆,主要是为了练习ajax的使用方法,有需要的小伙伴参考下. 以用户登录为例练习ajax的使用方法 login.html <!DOCTYPE ...

最新文章

  1. 3年编程经验无名校背景,全栈小哥是如何拿下Twitter Offer的?
  2. from flask.ext.wtf import Form 报错 ModuleNotFoundError: No module named 'flask.ext'
  3. 小米抢购限流峰值系统架构历年演进历程
  4. 设计模式-拦截器模式
  5. Spring 之常用接口
  6. ML之K-means:基于DIY数据集利用K-means算法聚类(测试9种不同聚类中心的模型性能)
  7. 手机qq显示鸿蒙在线,手机QQ显示对方朋友网络状态是“手机在线”是什么意思,明明对方是WiFi在线,怎么显示的是手机在线...
  8. android搜索功能xml,Android_Android ActionBar搜索功能用法详解,本文实例讲述了Android ActionBar - phpStudy...
  9. 【JAVA并发编程实战】3、同步容器
  10. MapGuide 浏览器可接受参数分析
  11. Docker应用五:使用Dockerfile部署MongoDB
  12. PostgreSQL体系结构之物理结构
  13. SQLServer基本操作
  14. Python中文分词神器---jieba
  15. python绘制中国省界地图_利用python绘制中国地图(含省界、河流等)
  16. 量子力学 一 基础5 厄尔米特算符与酉算符 算符的谱分解
  17. 计算机行业的未来10年发展前景,未来10年,这4大工作就业前景好,发展前途超过公务员...
  18. Photoshop使用教程 如何在线抠图
  19. PHP strpos
  20. 华为微认证华为云计算服务实践稳过 笔记资料

热门文章

  1. GO语言实现设计模式【全】
  2. Go Elasticsearch 删除快速入门
  3. Go Elasticsearch 增加快速入门
  4. WebGL编程指南理论分析之物体层次模型(局部运动)
  5. 通过配置文件添加MIME类型
  6. hybrid App cordova打包webapp PhoneGap
  7. Oracle SQL 优化原则(实用篇)
  8. 推荐几个win8系统下载比较好的网站
  9. 怎样追求心仪的女孩子
  10. Linux之date命令