vue 開發系列(二) vue ajax 攔截


概要說明

在開發的過程中,我們需要通過AJAX請求,訪問后台獲取數據,這個獲取數據的時候,當然需要后台需要時登錄狀態才能訪問數據,當沒有登錄的情況,這個時候我們需要跳轉到登錄界面進行登錄。

如果每次請求都要做如下處理,我們程序邏輯將無比混亂,ajax 可以為我們解決這個問題。

具體實現思路是:

1.發送ajax 請求訪問后端數據。

2.后端如果發現沒有登錄,那么將會丟出一個exceptionaction 的http 響應頭。

3.這個判斷將在ajax 攔截中處理,只要有這個響應頭,我們會檢查是否有登錄token,如果沒有就會去到登錄界面,如果有則嘗試使用token自動登錄。

這個過程將在攔截中完成。

這個好處是 客戶只需要關注業務代碼的編寫,登錄處理放到攔截中處理,而且所有的請求將都會被攔截。

 

實現代碼

const axiosInstance = axios.create({
    timeout: 20000,
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'X-Requested-With': 'XMLHttpRequest'
    }
});
axios 是我們訪問后台的JS框架。
定義攔截處理。
function interceptAjax(res){
    var tmp = res.headers["exceptionaction"];

    if(!tmp) return res;
    //系統已經登錄。
    var token = RxUtil.getCache("token");
    if(!token) {
        router.push({
            name: "login"
        });
        return;
    }

使用攔截器。

axiosInstance.interceptors.response.use(res=>interceptAjax(res));

這樣每次訪問都會經過攔截器,這也給我們一些思路,一些需要統一驗證的的訪問,可以通過攔截器進行處理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM