• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > Web 开发中Ajax的Session 超时处理方法

Web 开发中Ajax的Session 超时处理方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了java web ajax,system.web.mvc.ajax,web前端ajax,web ajax,ajax web窗体等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

在 Java Web 开发中,当session超时的情况下,普通页面的跳转好处理。关于Ajax的请求超时处理,就需要特殊处理下了。

先写一个统一的过滤器,或者拦截器,针对Ajax请求进行过滤处理,下面示例以Filter为例:

  public void doFilter(ServletRequest request, ServletResponse response,
      FilterChain chain) throws IOException, ServletException {
    HttpServletRequest servletRequest=(HttpServletRequest)request;
    HttpServletResponse servletResponse=(HttpServletResponse)response;
    // 判断是否是 Ajax 请求,因为 Ajax 请求会追加 x-requested-with=XMLHttpRequest
    if("XMLHttpRequest".equalsIgnoreCase(servletRequest.getHeader("x-requested-with"))){
      servletResponse.addHeader("sessionstatus", "timeout");
    }    
    // 后续代码省略......
  }

</div>

然后在页面上调用使用Ajax的时候,捕获结果进行超时处理,如下:

// 全局的ajax访问,处理ajax清求时sesion超时
$.ajaxSetup({
  type: POST,
  contentType:"application/json;charset=utf-8",
  // 使用 complete 捕获结果,做超时处理
  complete: function (XMLHttpRequest, textStatus) {
    var data = XMLHttpRequest.responseText;
    if (data == "timeout") {
      if( window.top != window.self ){
        window.top.location = "${pageContext.request.contextPath}";
      }
    }
  }
});

</div>

根据 Header 判断是否是 Ajax 请求,如果是 Ajax 就丢出一个状态码。

这段处理的 js 代码,可以提取为一个方法,这样方便在其他地方直接使用。

以上这篇Web 开发中Ajax的Session 超时处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Web 开发中Ajax的Session 超时处理方法

相关文章

  • 2017-05-11学习使用jQuery表单验证插件和日历插件
  • 2017-05-11JS实现的验证身份证及获取地区功能示例
  • 2017-05-11JQuery实现文字无缝滚动效果示例代码(Marquee插件)
  • 2017-05-11js中删除数组中的某一元素实例(无下标时)
  • 2017-05-11js实现文字无缝向上滚动
  • 2017-05-11原生Javascript插件开发实践
  • 2017-05-11微信小程序之picker日期和时间选择器
  • 2017-05-11vue使用watch 观察路由变化,重新获取内容
  • 2017-05-11搭建简单的nodejs http服务器详解
  • 2017-05-11微信小程序 template模板详解及实例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • bootstrap按钮插件(Button)使用方法解析
    • JS对象深度克隆实例分析
    • jQuery实现链接的title快速出现的方法
    • Angular.js实现多个checkbox只能选择一个的方法示例
    • Jquery实现跨域异步上传文件总结
    • JS触摸事件、手势事件详解
    • Javascript Event(事件)的传播与冒泡
    • Nodejs进阶:express+session实现简易登录身份认证
    • AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
    • Bootstrap栅格系统简单实现代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有