struts2攔截器判斷使用者是否為ajax請求
阿新 • • 發佈:2019-02-19
現在的網站,應該絕大多數用jquery作為基礎類庫了。假設有這樣的需求,在用struts2做許可權管理的時候,我們可以攔截使用者請求的資源,然後判斷該使用者是否有相應資源的許可權。如果沒有就返回一個字串,讓其跳轉相應的頁面,問題來了。如果是ajax請求呢,使用者是不會跳轉的,雖然使用者的操作被攔截,但是使用者卻不知道。所以我們可以在攔截成功的時候,響應一個字元,但是必須先判斷出,使用者的當前請求是否ajax請求。
這段程式碼只是針對jquery的ajax請求。 如果經常用firebug進行除錯的話,會發現jquery的ajax都會向後退傳送一個X-Requested-With報頭,其值為XMLHttpRequest。所以我們可以利用這個特點來判斷。
- privateboolean isAjaxRequest(HttpServletRequest request) {
- String header = request.getHeader("X-Requested-With");
- if (header != null && "XMLHttpRequest".equals(header))
- returntrue;
- else
- returnfalse;
- }