php ajax session,Ajax处理用户session失效
这次给大家带来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失效相关推荐
- 解决AJAX在用户登录失效后返回登录页面的问题
后端AJAX API,Session过期,登录失效,直接跳转(redirect)到登录页.(后端Shiro.Spring Security等都支持这个功能) 对于全站AJAX的应用,当然不存在redi ...
- ajax得到session,Ajax如何使用Session
在Ajax中有时会使用到Session,在aspx.cs文件这样获取: string name = Session["name"]; 但是在Ajax中就不能这样获取Session, ...
- java session失效之后跳转_详解springmvc控制登录用户session失效后跳转登录页面
springmvc控制登录用户session失效后跳转登录页面,废话不多少了,具体如下: 第一步,配置 web.xml 15 第二步,配置spring-mvc.xml 第三步,写拦截器SystemSe ...
- ajax获取session值_cookie和session基础知识学习
一.session的简单使用 session是服务器端技术,服务器在运行时可以为每一个用户的浏览器创建一个独享的session对象. session的使用步骤: 获取session对象 使用sessi ...
- 酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章)...
酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章) 最近手头在开发一个游戏官网,在支付模块采用神州付技术支持,神州付数据表单中要求提供服务器返回地址和 ...
- 域名,COOKIE是什么?有什么用处?COOKIE SESSION的区别?COOKIE的失效期?
这里是修真院web小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解web知识/技能,本篇分享的是: [域名,COO ...
- 巧用Ajax的beforeSend 提高用户体验--防止重复数据
巧用Ajax的beforeSend 提高用户体验 jQuery是经常使用的一个开源js框架,其中的$.ajax请求中有一个beforeSend方法,用于在向服务器发送请求前执行一些动作. 具体可参考j ...
- PHP 实现多网站共享用户SESSION 数据解决方案
PHP 实现多网站共享用户SESSION 数据解决方案 来源URL:http://blog.csdn.net/dongdongzzcs/article/details/6906613 一.问题起源 稍 ...
- Ajax+asp.net实现用户登陆 转自http://www.shangxueba.com/jingyan/2933319.html
这篇文章主要介绍了Ajax+asp.net实现用户登陆,主要是为了练习ajax的使用方法,有需要的小伙伴参考下. 以用户登录为例练习ajax的使用方法 login.html <!DOCTYPE ...
最新文章
- 3年编程经验无名校背景,全栈小哥是如何拿下Twitter Offer的?
- from flask.ext.wtf import Form 报错 ModuleNotFoundError: No module named 'flask.ext'
- 小米抢购限流峰值系统架构历年演进历程
- 设计模式-拦截器模式
- Spring 之常用接口
- ML之K-means:基于DIY数据集利用K-means算法聚类(测试9种不同聚类中心的模型性能)
- 手机qq显示鸿蒙在线,手机QQ显示对方朋友网络状态是“手机在线”是什么意思,明明对方是WiFi在线,怎么显示的是手机在线...
- android搜索功能xml,Android_Android ActionBar搜索功能用法详解,本文实例讲述了Android ActionBar - phpStudy...
- 【JAVA并发编程实战】3、同步容器
- MapGuide 浏览器可接受参数分析
- Docker应用五:使用Dockerfile部署MongoDB
- PostgreSQL体系结构之物理结构
- SQLServer基本操作
- Python中文分词神器---jieba
- python绘制中国省界地图_利用python绘制中国地图(含省界、河流等)
- 量子力学 一 基础5 厄尔米特算符与酉算符 算符的谱分解
- 计算机行业的未来10年发展前景,未来10年,这4大工作就业前景好,发展前途超过公务员...
- Photoshop使用教程 如何在线抠图
- PHP strpos
- 华为微认证华为云计算服务实践稳过 笔记资料