Ext异步请求session过期解决方案
来源:互联网 发布:windows快速安装工具 编辑:程序博客网 时间:2024/05/16 23:36
本文固定链接:http://www.verydemo.com/demo_c107_i817.html
http://lym6520.iteye.com/blog/871092
Ext异步请求session过期解决方案
博客分类: EXT
EXTAjaxjson框架
最近在开发后台管理系统,前台使用了Ext框架,在开发过程中,发现session过期时客服端仍然不断的进行了N次请求后才停止,我想很多使用过Ext框架开发的同学都遇到过同样的问题吧!今天我就来说说我的解决方案吧!
前端通过Ext.Ajax.request的requestcomplete事件来进行session过期验证处理的:
Js代码
// Default headers to pass in every request
Ext.Ajax.defaultHeaders = {
'Request-By': 'Ext' //标识ajax请求
};
// ajax回调函数处理系统退出
Ext.Ajax.on('requestcomplete',checkSessionStatus, this);
function checkSessionStatus(conn,response,options){
var json = Ext.decode(response.responseText);
if(typeof json == 'object'
&& !json.success
&& json.timeout){
alert("登入超时,系统将自动跳转到登陆页面,请重新登入!");
top.window.location.href = json.redirectUri;
}
}
从上面的js代码中,注意下面这行代码:
Js代码
// Default headers to pass in every request
Ext.Ajax.defaultHeaders = {
'Request-By': 'Ext' //标识ajax请求
};
需要设置请求的头信息来标识ajax请求,过滤器在处理请求的时候就是通过请求的头信息Request-By值是否为Ext来判断是否为Ext的异步请求的,然后在做出不同的响应。
最后看看过滤器的处理方式,以下是session超时处理的部分的代码:
Java代码
String ajaxTag = req.getHeader("Request-By");//Ext
if(ajaxTag == null || !ajaxTag.trim().equalsIgnoreCase("Ext")){
resp.sendRedirect(this.redirectUri);
}else{
resp.addHeader("sessionstatus", "timeout");
Map<String, Object> result = new HashMap<String, Object>();
result.put("success", false);
result.put("timeout",true);
result.put("redirectUri", this.redirectUri);
PrintWriter out = resp.getWriter();
out.print(Json.object2Json(result));
out.flush();
out.close();
}
通过判断是否为Ext的异步请求,来做出不同的动作处理:直接跳转到登入页面或输出session过期信息由前台js事件拦截处理。
Ext异步请求session过期解决方案
博客分类: EXT
EXTAjaxjson框架
最近在开发后台管理系统,前台使用了Ext框架,在开发过程中,发现session过期时客服端仍然不断的进行了N次请求后才停止,我想很多使用过Ext框架开发的同学都遇到过同样的问题吧!今天我就来说说我的解决方案吧!
前端通过Ext.Ajax.request的requestcomplete事件来进行session过期验证处理的:
Js代码
// Default headers to pass in every request
Ext.Ajax.defaultHeaders = {
'Request-By': 'Ext' //标识ajax请求
};
// ajax回调函数处理系统退出
Ext.Ajax.on('requestcomplete',checkSessionStatus, this);
function checkSessionStatus(conn,response,options){
var json = Ext.decode(response.responseText);
if(typeof json == 'object'
&& !json.success
&& json.timeout){
alert("登入超时,系统将自动跳转到登陆页面,请重新登入!");
top.window.location.href = json.redirectUri;
}
}
从上面的js代码中,注意下面这行代码:
Js代码
// Default headers to pass in every request
Ext.Ajax.defaultHeaders = {
'Request-By': 'Ext' //标识ajax请求
};
需要设置请求的头信息来标识ajax请求,过滤器在处理请求的时候就是通过请求的头信息Request-By值是否为Ext来判断是否为Ext的异步请求的,然后在做出不同的响应。
最后看看过滤器的处理方式,以下是session超时处理的部分的代码:
Java代码
String ajaxTag = req.getHeader("Request-By");//Ext
if(ajaxTag == null || !ajaxTag.trim().equalsIgnoreCase("Ext")){
resp.sendRedirect(this.redirectUri);
}else{
resp.addHeader("sessionstatus", "timeout");
Map<String, Object> result = new HashMap<String, Object>();
result.put("success", false);
result.put("timeout",true);
result.put("redirectUri", this.redirectUri);
PrintWriter out = resp.getWriter();
out.print(Json.object2Json(result));
out.flush();
out.close();
}
通过判断是否为Ext的异步请求,来做出不同的动作处理:直接跳转到登入页面或输出session过期信息由前台js事件拦截处理。
0 0
- Ext异步请求session过期解决方案
- 重写ajax方法实现异步请求session过期时跳转
- Ajax请求session过期解决
- session过期ajax请求过滤
- Ajax请求session过期处理
- 重写ajax方法实现异步请求session过期时跳转登录页面
- 重写ajax方法实现异步请求session过期时跳转登录页面
- 重写ajax方法实现异步请求session过期时跳转登录页
- 重写ajax方法实现异步请求session过期时跳转登录页面
- Ext下,ajax请求和普通http请求,session超时转到登录页面的解决方案
- Ext下,ajax请求和普通http请求,session超时转到登录页面的解决方案
- Ext.Ajax.request异步请求
- Ajax 请求session过期的统一处理
- springmvc的请求过滤器(session过期)
- DWR 控制请求session过期处理
- Ajax请求Session过期简单实现
- session过期,登录页被内嵌iframe的解决方案
- java过滤器对ext异步请求跳转
- gnome3的一些你所不知道的功能
- SQL Server 2008R2清理日志确实有效可用的方法
- php运用adodb连接不同数据库(实例)
- AfxGetApp();
- BizTalk Server 2006业务活动监控
- Ext异步请求session过期解决方案
- Java普通类取request | session
- smarty实例教程---程序设计部分
- Developing COM Components using VC-ATL(3-4)
- 重学c语言系列四--变量在内存中的布局(二)
- 智能手机usb网络共享
- Linux时区、时间的更改
- 求教,怎么在局域网内连接其他主机的SQL2008数据库
- SQL Server内部的内存管理