You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

38 lines
966 B

// 引入第三方请求库axios
import axios from "axios";
import pinia from "@/store";
import { ElMessage } from "element-plus";
import userStore from "@/store/modules/user";
// 创建axios实例
const server = axios.create({
baseURL: import.meta.env.VITE_APP_BASE_API,
timeout: 30000,
});
// 创建请求拦截器
server.interceptors.request.use((config) => {
const useuserStore = userStore(pinia);
config.headers.Authorization = useuserStore.token;
config.headers["x-access-token"] = useuserStore.token;
return config;
});
// 创建相应拦截器
server.interceptors.response.use((response) => {
if (response.data.code === 401) {
const useuserStore = userStore(pinia);
// useuserStore.clearStatus();
// return Promise.reject(response);
}
if (response.data.code === 412) {
ElMessage.error(response.data.message);
return Promise.reject(response);
}
return response.data;
});
// 暴露axios实例
export default server;