應用場景:
1,每個請求都帶上的參數,比如token,時間戳等。
2,對返回的狀態進行判斷,比如token是否過期
代碼如下:
[javascript] view plain copy
- axios.interceptors.request.use(?
- ??????? config => {?
- var xtoken = getXtoken()?
- if(xtoken != null){?
- ??????????????? config.headers['X-Token'] = xtoken?
- ??????????? }?
- if(config.method=='post'){?
- ??????????????? config.data = {?
- ??????????????????? ...config.data,?
- ??????????????????? _t: Date.parse(new Date())/1000,?
- ??????????????? }?
- ??????????? }else if(config.method=='get'){?
- ??????????????? config.params = {?
- ??????????????????? _t: Date.parse(new Date())/1000,?
- ??????????????????? ...config.params?
- ??????????????? }?
- ??????????? }?
- return config?
- ??????? },function(error){?
- return Promise.reject(error)?
- ??????? }?
- ??? )?
- axios.interceptors.response.use(function (response) {?
- // token 已過期,重定向到登錄頁面
- if (response.data.code == 4){?
- ??????? localStorage.clear()?
- ??????? router.replace({?
- ??????????????????????? path: '/signin',?
- ??????????????????????? query: {redirect: router.currentRoute.fullPath}?
- ??????????????????? })?
- ??? }?
- return response?
- }, function (error) {?
- // Do something with response error
- return Promise.reject(error)?
- })?