基於jquery的全局ajax函數處理session過時後的ajax操做

    作web經常須要考慮session過時的問題,session過時就讓頁面跳轉到登陸界面去,可是存在這樣一個問題,當頁面過時後,用戶請求後臺的方式有兩種:傳統方式和異步請求方式,傳統方式倒好解決,請求到後臺,攔截到過時的操做,直接跳轉,可是異步請求不會刷新整個頁面,所以對session過時的處理也不能按往常的方式,須要另外的操做。 java


具體思路:攔截器中判斷是否爲ajax請求 —— 是ajax請求則返回一個消息 ——頁面添加一個全局的ajax處理事件,對消息進行判斷,若是是報告session過時,則location到登陸頁面 web


第一步,攔截器判斷是否爲ajax請求: ajax

if(request.getHeader("x-requested-with")!=null   
	            && request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){   
				//是ajax請求,則返回個消息給前臺
	            PrintWriter printWriter = response.getWriter();   
	            printWriter.print("{sessionState:timeout}");   
	            printWriter.flush();   
	            printWriter.close();   
        }else{  
                //不是ajax請求,則直接跳轉頁面
        }



第二步,設置全局ajax處理事件,處理session過時的問題,相似於一個攔截器或者過濾器:
$.ajaxSetup({   
        contentType:"application/x-www-form-urlencoded;charset=utf-8",   
        cache:false ,   
        complete:function(data,TS){   
            //對返回的數據data作判斷,
            //session過時的話,就location到一個頁面
            }    
        }   
    });
這是一個基於jQuery的異步處理機制,完整代碼我沒寫,上次在公司寫的代碼,帶不出來,文章裏的代碼有些仍是在網上找來粘進去的,凌晨都過了半小時了,太困了,記錄下思路而已。
相關文章
相關標籤/搜索