springmvc 攔截器區分ajax請求

引子

最近由於工作需要,在攔截器裏對ajax請求做一些不同的處理,在這裏把自己的的處理方式分享出來。比較簡單,看看代碼就會明白了。

ajax代碼

$(document).ready(function(){
    $(".new_bt").click(function(){
        data = ...;
        $.ajax({
            type: "POST",
            url: "../index/saveYue.do",
            data:data,
            dataType: "json",
            success:function(data){
                //成功的處理
            }
            error:function(data){   
                if(data.responseText=='loseSession'){
                    //session失效時的處理  
                }
            }
        });
    });

攔截器代碼

    @Override
    public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object obj){     
        //一系列處理後發現session已經失效
        if (req.getHeader("x-requested-with") != null && req.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){ //如果是ajax請求響應頭會有x-requested-with  
            PrintWriter out = resp.getWriter();  
            out.print("loseSession");//session失效
            out.flush();
            return false;
        }else{
            //非ajax請求時,session失效的處理
        }
        return true;
    }
發佈了59 篇原創文章 · 獲贊 12 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章