我自己根據method是GET還是POST請求分開定義了兩個axios
let myPost = axios.create({//POST請求
baseURL: urls.baseUrl,
method: 'post',
})
let myGet = axios.create({//GET請求
baseURL: urls.baseUrl,
method: 'get',
})
請求攔截器(請求之前的操作)
myPost.interceptors.request.use(config => {
if (sessionStorage.getItem("token")) {//在這里獲取到登錄成功后存的token,并加到headers中
config.headers.token = sessionStorage.token
}
console.log(config)
return config;
}, error => {
console.log(error);
return Promise.reject();
})
myGet.interceptors.request.use(config => {
if (sessionStorage.getItem("token")) {
config.headers.token = sessionStorage.token
}
console.log(config)
return config;
}, error => {
console.log(error);
return Promise.reject();
})
回應攔截器(請求后的操作)
myPost.interceptors.response.use(response => {
if (response.status === 200) {
return response;
} else {
Promise.reject();
}
}, error => {
//錯誤跳轉(這里只是根據我自己的專案做得操作【這里你們根據自己的專案來判斷錯誤時的處理】)
if (error.response.status === 500) {
console.log(error.response.data.info)
} else if (error.response.status === 401) {
sessionStorage.setItem("isLogin", false);
console.log(sessionStorage.getItem("isLogin"));
router.push({ path: "/" })
router.go(0)
return Promise.reject();
}
})
myGet.interceptors.response.use(response => {
if (response.status === 200) {
return response;
} else {
Promise.reject();
}
}, error => {
//錯誤跳轉
if (error.response.status === 500) {
console.log(error.response.data.info)
} else if (error.response.status === 401) {
sessionStorage.setItem("isLogin", false);
console.log(sessionStorage.getItem("isLogin"));
router.push({ path: "/" })
router.go(0)
return Promise.reject();
}
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/229203.html
標籤:其他
上一篇:初始C語言
