Extjs非同期セッションタイムアウト問題について処理する.
928 ワード
Extjs非同期sessionのタイムアウト問題処理についてHTTPタイムアウトの判断はフィルタFilterで判断できます.ページがタイムアウトしたら、request.forward()などの方法でログインページにジャンプできます.しかし、Ajaxの要求に対して、request.forwardはどうしようもないです.request.forwardが機能しないのではなく、AJAXの原理でページ全体が更新されません.(PS:request.forward()後のページテキストはXMLHttpRequest.reponseTextで取得できます.そこで私たちは別の方法でジャンプする必要があります.簡単な方法はhttp Statusの状態を設定し、ExtJsが傍受します.
JAVA
JAVSCRIPT
JAVA
if( ){
if("XMLHttpRequest".equals(request.getHeader("x-requested-with"))){
response.setStatus(401);
}
}
JAVSCRIPT
Ext.Ajax.on('requestcomplete',function(conn,response,options) {
if(response.statusText==401){
Ext.Msg.alert(' ', ' , !', function(){
window.location = 'http://localhost:8080/login.jsp';
});
}
});