import axios from "axios"; import router from '@/router' import {getToken} from "@/common/utils/auth.js"; import {ElLoading} from "element-plus"; let loading; const startLoading = ()=>{ const options = { lock: true, text: "加载中...", background: "rgba(0,0,0,0.7)" } loading = ElLoading.service(options) } const endLoading = ()=>{ loading.close() } axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' const request = axios.create({ baseURL: '/api', timeout: 10000 }); //请求拦截器 request.interceptors.request.use(config =>{ startLoading(); //添加token let token = getToken(); config.headers['token'] = token?token+'':''; return config; }); //响应拦截器 request.interceptors.response.use(response =>{ endLoading(); let res = response.data; if (res.code === 401){ // location.reload(); router.push('/index'); } //如果是文件就直接返回 if(response.config.responseType === 'blob')return res; //如果是字符串就转换为json对象 if(typeof res === 'string'){ res = res?JSON.parse(res):res; } return res; }); export default request;