今天發現,當使用ajax請求時,如果後台進行重定向到其他頁面時是無法成功的,只能在瀏覽器位址列輸入才能夠實現重定向。
需要實現的功能是,後台閘道器攔截請求,看請求中是否存在token.如果不存在就跳轉到登入頁面。因為大多數請求都是使用ajax.一開始發現無法進行重定向,每次都是返回到ajax的結果處理函式。最終的解決辦法如下,需要後台和前端進行處理。
後台:
/**
*功能描述
* @author lgj
* @description 重定向工具類
* @date 2/27/19
*/@slf4j
public class redirecutil
//如果是瀏覽器位址列請求
else
}catch(exception ex)
}/**
*功能描述
* @author lgj
* @description ajax請求時重定向處理
}}
前端處理第一種方式:使用ajax的complete方法
$.ajax(,
//請求完成呼叫
(xhr, ts)
win.location.href = url;
} },
});})
但是上面有個問題就是,每個ajax都需要編寫 comlete 方法,**復用率低。
第二種方法 : 使用全域性的complete方法ajax請求:
$("#non-token").click(function () ,
});
全域性處理
注意這引數(event, xhr, settings)不能少,否則會報錯
//每乙個ajax 請求完成之後都會執行。
$(document).ajaxcomplete(function (event, xhr, settings) )
function redirecthandle(xhr)
win.location.href = url;
}}
** ajax後台重定向會返回什麼 ajax重定向跨域
瀏覽器如何對重定向?當瀏覽器請求乙個位址,服務端返回302,瀏覽器會再次請求一次要重定向的url位址 頁面直接請求的響應的重定向位址,當前頁面是要跳轉的 如果用ajax發起一次請求 ajax發起的重定向,當前頁面不會跳轉 服務端返回302,重定向後url的網域名稱跟ajax請求的網域名稱相同,瀏覽器...
用screen 在後台執行程式
運維工作中經常,需要ssh遠端登入到linux 伺服器,執行一些需要很長時間才能完成的任務,由於很多服務進行了基線調整,經常會出現任務沒有執行完成會話就中斷,任務就會被殺掉,一切半途而廢了,這時,我們可以用screen命令解決這個問題 screen是乙個可以在多個程序之間多路利用乙個物理終端的視窗管...
ajax請求後台互動json示例
ajax請求,首先需要伺服器 首先你需要node 其次,進入當前目錄 預設伺服器端口8080 http server 推薦封裝ajax,以及ajax轉碼過來或者轉碼回去後台 1 doctype html 2 html 34 head 5 meta charset utf 8 6 title docu...