您好,登錄后才能下訂單哦!
本文實例講述了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));
這樣每次訪問都會經過攔截器,這也給我們一些思路,一些需要統一驗證的的訪問,可以通過攔截器進行處理。
希望本文所述對大家vue.js程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。