现在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过期问题相关推荐

  1. 解决ajax请求跨域,解决ajax请求跨域

    跨域大部分需要通过后台解决,引起跨域的原因: 3个问题同时满足 才可能产生跨域问题,即跨域(协议,主机名,端口号中有一个不同就产生跨域) 下面是解决方法 方法一 // ajax请求跨域 /* *解决a ...

  2. C#发布网站在web.config和IIS中设置Session过期时间

    C#发布网站在web.config和IIS中设置Session过期时间 web.config <system.web> <sessionState mode="InProc ...

  3. 为什么要用promise处理ajax,用promise.all解决ajax异步循环请求问题

    Promise.all() 并不能解决循环的问题,一般情况下 .all() 的参数是 Promise 数组(暂时不考虑其它类似).那么,数组中的每个 Promise 都代表着一个异步操作,Promis ...

  4. ajax error parsererror,完美解决ajax跨域请求下parsererror的错误

    AJAX 的 完美解决ajax跨域请求下parsererror的错误 ajax请求报parsererror错误是很宽泛的概念,很多情况下都报这个错, 在很多时候,即使ajax提交.返回都正常 XMLH ...

  5. jsonp跨域的缺点ajax缺点,浅析JSONP解决Ajax跨域访问问题的思路详解

    前几天,工作上有一新需求,需要前端web页面异步调用后台的Webservice方法返回信息.实现方法有多种,本例采用jQuery+Ajax,完成后,在本地调试了一切ok,但是部署到服务器上以后就出现问 ...

  6. ajax嵌套ajax的坏处,promise解决ajax的多重嵌套

    这是最近做点一个用户点赞的功能代码,思路: 获取当前点击的cuskey值(相当于数据表的ID),用ajax 调用 invok/get 接口查询并记录对应的内容,var data222: 调用接口/in ...

  7. php ajax access,转载:解决Ajax跨域 Access to XMLHttpRequest问题

    错误提示 Access to XMLHttpRequest at 'http://localhost:8080/api/user/login' from origin 'http://localhos ...

  8. Skylin CityBuilder 6.6.1 提示授权过期解决(License Manager中显示未过期)

    最近工作中使用到Skyline 系列软件,授权一切正常,启动CityBuilder时提示授权过期 运行License Manger之后查看授权状态 ' 一切正常,并没有出现授权过期等情况. 如何解决: ...

  9. php ajax session失效,PHP中解决ajax请求session过期退出登录问题

    1.session过期,如果直接是url请求,或者用户在打开的系统页面中直接清除缓存及cookie信息,可直接在php的入口文件中调用以下封装的方法,进行session信息判断以及页面的跳转,如: i ...

最新文章

  1. OpenCV代码提取:rotate函数的实现
  2. 软件分享大会之Bonny使用感想
  3. Noip2016换教室
  4. 2020年信息系统项目管理师真题讲解:基础知识3/3
  5. Qt setMargin()和setSpacing() 的含义
  6. hbasehlog_HBase原理--RegionServer核心组件之HLog
  7. WinForm应用程序框架设计之WinAction(一:显示列表窗体)
  8. DEL: 2012年每月花销
  9. webservice服务及客户端 编程 - 入门
  10. CodeSmith基础(八)
  11. java 文件流下载pdf
  12. itextpdf 给pdf文档添加图片
  13. 经济观察评论:现在是筑底时期, 对复苏仍可以保持乐观!]
  14. Quartz 定时任务相关介绍表
  15. 《中国新闻周刊》报道:施一公深陷泥潭
  16. 用java制作的简易倒计时器(主要可用于考试系统中考试剩余时间显示)
  17. Axure RP从入门到精通(五十三)灵魂提问 - 画原型到底要不要加交互事件?
  18. 33220a 编程C语言,基于AT89C51单片机的数字式波形发生器(非常完整).doc
  19. 【对讲机的那点事】带你玩转摩托罗拉Magone A1D/A2D数字对讲机读写频率
  20. Interview之NLP:人工智能领域求职岗位—自然语言处理NLP算法工程师职位的简介、薪资介绍、知识结构之详细攻略

热门文章

  1. 建设绿色工地,噪声扬尘在线监测处理解决方案
  2. Spring 事务事件监控及实现原理
  3. Ubuntu Linux免费杀毒软件comodo(科摩多)的安装和使用
  4. web前端期末大作业 html+css+javascript网页设计实例 企业网站制作
  5. SQL Server2005作业执行失败的解决办法
  6. setPriority()优先级
  7. DNS服务器、IP地址、子网掩码、默认网关的详解
  8. (SEED-Lab) 伪随机数生成实验
  9. 关于sprintf函数详解
  10. numpy 数组 ::_看起来不错,没有麻烦:使用NumPy进行数组编程