这篇文章大部分内容是从其他地方看到的,只是自己添加了些内容。
对于普通的http请求,可以通过拦截器判断session超时,然后跳转到登录页面;但是对于Ajax请求,则不会如期待的那样自动转到登录页面,若想实现,必须特殊处理。
不论是普通http请求还是ajax请求,都可以通过拦截器来将请求捕获,而且区分这两种请求在于头部信息的不同:普通http请求的header参数中没有x-requested-with:XMLHttpRequest头信息,而异步的有。
个人呢认为Ext的Ajax请求分为这么几种,Ext.Ajax类、Ext.data.Connection类、Ext.data.HttpProxy类,其中Ext.Ajax类是对Ext.data.Connection类封装的单一实例,Ext.data.HttpProxy内部引用的还是Ext.Ajax类,所以我们需要为Ext.data.Connection类设置统一的超时处理。
我在Ext.data.Connection的源码中直接为其添加个监听,让它在发生异常时实现跳转
listeners:{
'requestcomplete':{
fn:function(conn,response,options){
if(response.getResponseHeader.sessionstatus){
window.location.href='error.jsp';
}
}
}
},
Action中拦截器的处理和原来几乎一样,只是在超时的处理上添加一个分支
if (request.getHeader("x-requested-with") != null
&& request.getHeader("x-requested-with").equalsIgnoreCase(//ajax超时处理
"XMLHttpRequest")) {
response.addHeader("sessionstatus", "timeout");
}else{//http超时的处理
}
分享到:
相关推荐
实现页面跳转问题,关于extjs的页面跳转问题。。
Extjs4的textfield控件竟然没有tooltip悬浮提示,这应该算是个bug吧。网上查了很多,也没有方案。后来自己通过查询并整理出这个方案,终于实现了。 思想如下: 在textfield渲染时注册mouseover事件,然后在其中调用...
NULL 博文链接:https://fxiaozj.iteye.com/blog/1174901
可以动态的新增和删除Ext控件,这里支持的上传控件的新增和删除。
Extjs4.2添加谷歌地图,实现地图标注,定位等功能。
EXTJS应用EXTJS应用EXTJS应用EXTJS应用EXTJS应用EXTJS应用
extjs4动态添加表头字段、删除、增加记录!
extjs资料extjs资料extjs资料extjs资料extjs资料
Struts2与extjs整合例子
extjs动态添加tabpanel标签页支持pannel嵌入 逻辑代码在 MyWindow.js里面直接调用 方法 就可以
Extjs例子Extjs例子Extjs例子Extjs例子Extjs例子
Extjs 重写Panel添加click事件
Extjs 4.11 重写 Panel 添加 click事件
extjs4.2 desktop demo 拓展功能:图标换行,拖动,多级开始菜单,修正extjs4.2的一些bug,加了几个桌面图标,纯js无后台程序,无需发布即可浏览。
在vs2008中添加对extjs的智能提示;总共两步骤,简单易用,个VS代码编辑提示一样;只需轻轻用鼠标拖拽就完成;
ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门ExtJS快速入门 ExtJS快速入门 ExtJS...
ExtJS验证文件上传类型,详细讲述ExtJS如何验证文件上传文件的类型!
extjs电子书,extjs电子书,extjs电子书,extjs电子书
xtJs已经升级到了5.0了,目前可能多数应用还在使用ExtJs 3.系列。 从开发大型的web后台或者企业管理系统来看,ExtJs3的缺陷还是比较明显的,从ExtJs4 开始引入了MVC架构,从而能够从容的组织系统的JS文件了。 从...
EXTJS实例 EXTJS树,可以编辑的EXTJS,EXTJS3.0