關於axios的攔截器是一個作用非常大,非常好用的東西。分為請求攔截器和響應攔截器兩種。
我一般把攔截器寫在main.js里。
1. 請求攔截器
請求攔截器的作用是在請求發送前進行一些操作,例如在每個請求體里加上token,統一做了處理如果以后要改也非常容易。
axios.interceptors.request.use(function (config) {
// 在發送請求之前做些什么,例如加入token
.......
return config;
}, function (error) {
// 對請求錯誤做些什么
return Promise.reject(error);
});
2. 響應攔截器
響應攔截器的作用是在接收到響應后進行一些操作,例如在服務器返回登錄狀態失效,需要重新登錄的時候,跳轉到登錄頁。
axios.interceptors.response.use(function (response) {
// 在接收響應做些什么,例如跳轉到登錄頁
......
return response;
}, function (error) {
// 對響應錯誤做點什么
return Promise.reject(error);
});
3. 移除攔截器
var myInterceptor = axios.interceptors.request.use(function () {/*...*/});
axios.interceptors.request.eject(myInterceptor);
4. 為axios實例添加攔截器
var instance = axios.create();
instance.interceptors.request.use(function () {/*...*/});
攔截器真的非常重要非常好用~