关于blob:前端blob方式导出Excel
封装axios: import axios from "axios";const server = axios.create({ timeout: 20000, withCredentials: true, headers: { "Content-Type": "application/json; charset=utf-8" },});// 申请拦截器server.interceptors.request.use( function (config) { // 在发送申请之前做些什么 let userinfo = JSON.parse(window.localStorage.getItem("userinfo")); if (userinfo) { config.headers.Authorization = userinfo.token; } return config; }, function (error) { // 对申请谬误做些什么 return Promise.reject(error); });// 响应拦挡server.interceptors.response.use( function (response) { // 如果返回的状态码为200,阐明接口申请胜利,能够失常拿到数据否则的话抛出谬误 if (response.status === 200) { // 未登录或者token过期 if (response.data.err === 1) { localStorage.removeItem("userinfo"); setTimeout(() => { router.push("/login"); }, 1000); } else if (response.data.err === 10) { setTimeout(() => { router.push("/nopower"); }, 1000); } return Promise.resolve(response); } else { return Promise.reject(response); } }, function (error) { if (error.response.status) { switch (error.response.status) { case 401: break; case 404: Message.error("网络申请不存在"); break; // 其余谬误,间接抛出谬误提醒 case 500: if (error.response.data.err === 1) { localStorage.removeItem("userinfo"); setTimeout(() => { router.push("/login"); }, 1000); } break; default: Message.error(error.response.data.msg); } return Promise.reject(error.response.data.msg); } });server.adornUrl = (actionName) => { // 非生产环境 && 开启代理, 接口前缀对立应用[/proxyApi/]前缀做代理拦挡! return "/api" + actionName;};export default server;申请接口: ...