import axios from "axios";
|
import myConfig from "@/assets/js/config.js";
|
import toolClass from "@/assets/js/toolClass.js";
|
import router from "@/router";
|
// 创建 axios 实例
|
const service = axios.create({
|
baseURL: myConfig.requestCtx,
|
timeout: myConfig.requestTimeOut, // 请求超时时间
|
});
|
|
// 请求拦截器
|
service.interceptors.request.use(
|
(config) => {
|
let token = localStorage.getItem(myConfig.tokenKey);
|
if (token) config.headers["Authorization"] = `bearer ${token}`;
|
return config;
|
},
|
(error) => {
|
// 发送失败
|
Promise.reject(error);
|
}
|
);
|
|
// 响应拦截器
|
service.interceptors.response.use(
|
(response) => {
|
console.log(response);
|
// dataAxios 是 axios 返回数据中的 data
|
const dataAxios = response.data;
|
if (typeof dataAxios.data === "boolean") {
|
return dataAxios.data;
|
}
|
if (response.config.responseType == "blob") {
|
return dataAxios;
|
}
|
const { success } = dataAxios;
|
if (dataAxios.currentDate) {
|
sessionStorage.currentDate = new Date(dataAxios.currentDate).getTime();
|
}
|
// 根据 code 进行判断
|
if (response.status == 200 && response.statusText == "OK") {
|
return dataAxios.data ? dataAxios.data : dataAxios;
|
} else {
|
// 提示错误
|
}
|
},
|
(error) => {
|
if (
|
(error.response && error.response.status == 401) ||
|
error.code == "ERR_NETWORK"
|
) {
|
localStorage.removeItem(myConfig.tokenKey);
|
localStorage.removeItem("jesk-userInfo");
|
localStorage.removeItem("alreadyElectronicBook");
|
localStorage.removeItem("alreadyPaperBook");
|
localStorage.removeItem("electronicBookList");
|
localStorage.removeItem("paperBookList");
|
sessionStorage.removeItem("cartNumber");
|
// router.replace({
|
// path: '/home',
|
// query: {
|
// showLogin: '1'
|
// }
|
// })
|
const url = window.location.hash.slice(1);
|
console.log(url, "url");
|
if (url.includes("showLogin=1")) {
|
router.push(url);
|
} else {
|
// router.push(url)
|
if (url.includes("?")) {
|
console.log(url.includes("?"));
|
router.push(url);
|
} else {
|
router.push(url + "?showLogin=1");
|
}
|
}
|
} else {
|
if (error.response && error.response.data && error.response.data.error) {
|
console.error(error.response.data.error.msg);
|
} else {
|
console.error("请求发生错误");
|
}
|
}
|
return Promise.reject(error);
|
}
|
);
|
|
export default service;
|