ajax能用sesssion,解决Ajax应用中的session过期问题
现在web开发中,ajax应用的比较多。关于此方面的框架也不少。在应用中都会遇到session过期的问题,如处理不当会影响用户体验,也有可能产生莫名的问题。
结合自己的思考和网上相关内容的参考,给出如下解决方案。每个方案都有不同的优缺点,欢迎大家指正。
方案1:检查AJAX返回的返回的内容是否有< html>标签
在web系统中,当session过期时,当用户有操作的时候,此时系统一般会返回登陆界面。
让用户重新输入用户名和密码。当session过期的时候,AJAX请求返回的内容应该是登陆界面的页面内容(即登陆界面的页面的html代码)。通过判断返回内容是否用< html>来判断session是否过期。varresult=request.responseText;/* ajax返回的内容*/
if(result.indexOf('')>-1){/*返回内容中有html标签*/}
或者varr=//ig;
if(r.test(result)){/*返回内容中有html标签*/}
通过上面的方法可以判断session是否过期,然后根据具体的业务进行异常处理。
方案2:返回的结果中有session是否过期的标志。也有人称为true/false模式。此解决方案一般结合json使用。
如返回的结果是:varres={
"result":true,/*session没有过期,false(session过期)*/
"data":""/*其它数据*/
}
if(res["result"])
{
/*session没有过期*/
}else{
/*session过期*/
}
方案3:利用时间戳
在页面上搞个全局变量varstartDate;/*ajax最近一次访问服务器的时间,Date类型*/
if(newDate().getTime()-startDate.getTime()
{
/*假设session过期的时间30分钟*/
/*session没有过期*/
}else{
/*session过期*/
}
哈哈!Do not trust the client
方案4:延长session过期时间
此方案有性能问题
4.1:延长session过期时间
4.2:client轮循server。(AJAX轮循server或client,server保持长连接)
【编辑推荐】
【责任编辑:杨赛 TEL:(010)68476606】
点赞 0
ajax能用sesssion,解决Ajax应用中的session过期问题相关推荐
- 解决ajax请求跨域,解决ajax请求跨域
跨域大部分需要通过后台解决,引起跨域的原因: 3个问题同时满足 才可能产生跨域问题,即跨域(协议,主机名,端口号中有一个不同就产生跨域) 下面是解决方法 方法一 // ajax请求跨域 /* *解决a ...
- C#发布网站在web.config和IIS中设置Session过期时间
C#发布网站在web.config和IIS中设置Session过期时间 web.config <system.web> <sessionState mode="InProc ...
- 为什么要用promise处理ajax,用promise.all解决ajax异步循环请求问题
Promise.all() 并不能解决循环的问题,一般情况下 .all() 的参数是 Promise 数组(暂时不考虑其它类似).那么,数组中的每个 Promise 都代表着一个异步操作,Promis ...
- ajax error parsererror,完美解决ajax跨域请求下parsererror的错误
AJAX 的 完美解决ajax跨域请求下parsererror的错误 ajax请求报parsererror错误是很宽泛的概念,很多情况下都报这个错, 在很多时候,即使ajax提交.返回都正常 XMLH ...
- jsonp跨域的缺点ajax缺点,浅析JSONP解决Ajax跨域访问问题的思路详解
前几天,工作上有一新需求,需要前端web页面异步调用后台的Webservice方法返回信息.实现方法有多种,本例采用jQuery+Ajax,完成后,在本地调试了一切ok,但是部署到服务器上以后就出现问 ...
- ajax嵌套ajax的坏处,promise解决ajax的多重嵌套
这是最近做点一个用户点赞的功能代码,思路: 获取当前点击的cuskey值(相当于数据表的ID),用ajax 调用 invok/get 接口查询并记录对应的内容,var data222: 调用接口/in ...
- php ajax access,转载:解决Ajax跨域 Access to XMLHttpRequest问题
错误提示 Access to XMLHttpRequest at 'http://localhost:8080/api/user/login' from origin 'http://localhos ...
- Skylin CityBuilder 6.6.1 提示授权过期解决(License Manager中显示未过期)
最近工作中使用到Skyline 系列软件,授权一切正常,启动CityBuilder时提示授权过期 运行License Manger之后查看授权状态 ' 一切正常,并没有出现授权过期等情况. 如何解决: ...
- php ajax session失效,PHP中解决ajax请求session过期退出登录问题
1.session过期,如果直接是url请求,或者用户在打开的系统页面中直接清除缓存及cookie信息,可直接在php的入口文件中调用以下封装的方法,进行session信息判断以及页面的跳转,如: i ...
最新文章
- OpenCV代码提取:rotate函数的实现
- 软件分享大会之Bonny使用感想
- Noip2016换教室
- 2020年信息系统项目管理师真题讲解:基础知识3/3
- Qt setMargin()和setSpacing() 的含义
- hbasehlog_HBase原理--RegionServer核心组件之HLog
- WinForm应用程序框架设计之WinAction(一:显示列表窗体)
- DEL: 2012年每月花销
- webservice服务及客户端 编程 - 入门
- CodeSmith基础(八)
- java 文件流下载pdf
- itextpdf 给pdf文档添加图片
- 经济观察评论:现在是筑底时期, 对复苏仍可以保持乐观!]
- Quartz 定时任务相关介绍表
- 《中国新闻周刊》报道:施一公深陷泥潭
- 用java制作的简易倒计时器(主要可用于考试系统中考试剩余时间显示)
- Axure RP从入门到精通(五十三)灵魂提问 - 画原型到底要不要加交互事件?
- 33220a 编程C语言,基于AT89C51单片机的数字式波形发生器(非常完整).doc
- 【对讲机的那点事】带你玩转摩托罗拉Magone A1D/A2D数字对讲机读写频率
- Interview之NLP:人工智能领域求职岗位—自然语言处理NLP算法工程师职位的简介、薪资介绍、知识结构之详细攻略
热门文章
- 建设绿色工地,噪声扬尘在线监测处理解决方案
- Spring 事务事件监控及实现原理
- Ubuntu Linux免费杀毒软件comodo(科摩多)的安装和使用
- web前端期末大作业 html+css+javascript网页设计实例 企业网站制作
- SQL Server2005作业执行失败的解决办法
- setPriority()优先级
- DNS服务器、IP地址、子网掩码、默认网关的详解
- (SEED-Lab) 伪随机数生成实验
- 关于sprintf函数详解
- numpy 数组 ::_看起来不错,没有麻烦:使用NumPy进行数组编程