import axios from "axios"; import { ElMessage } from "element-plus"; import type { AxiosInstance, AxiosRequestConfig } from "axios"; class HttpRequest { private readonly baseUrl: string; constructor() { this.baseUrl = "/api"; } getInsideConfig() { const config = { baseURL: this.baseUrl, // 所有的请求地址前缀部分(没有后端请求不用写) timeout: 80000, // 请求超时时间(毫秒) }; return config; } // 请求拦截 interceptors(instance: AxiosInstance, url: string | number | undefined) { instance.interceptors.request.use( (config) => { // 添加全局的loading.. // config.headers['Authorization'] = // 'bearer ' + JSON.parse(window.localStorage.getItem('adminInfo') || '{}').access_token; // 请求头带上token token要在登录的时候保存在localStorage中 // console.log( // "🚀 ~ requestHandler ~ config.headers['Authorization']:", // JSON.parse(window.localStorage.getItem('adminInfo') || '{}'), // config.headers // ); config.headers["Authorization"] = "bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySW5kZXgiOiJmYTM3YjkzY2M5MGQ0YzE3ODRjYThmNmRlYmRkZWUxYSIsInVzZXJfbmFtZSI6InJvb3QiLCJzY29wZSI6WyJhbGwiXSwibmlja25hbWUiOiLotoXnuqfnrqHnkIblkZgiLCJ1c2VyVHlwZSI6MCwiZGVwdEluZGV4IjoiNTY5OWU1OTE2YTE4YTYzODFlMWFjOTJkYTViZDI2MjgiLCJleHAiOjE4MjE4MTc2MTksImF1dGhvcml0aWVzIjpbInJvb3QiXSwianRpIjoiMmJiM2Q5ZTYtNmY3Yy00Yjg1LThiM2EtZDI2ODdmMTUzMDg5IiwiY2xpZW50X2lkIjoibmpjbnRlc3QiLCJoZWFkU2N1bHB0dXJlIjoicmVzb3VyY2VEYXRhLzMxNzRDRUFFOUQ0MjRGMjJCQjkxQTU4OURENjdCMDUxLmpwZyJ9.WjeYl1lvvJdDE1FUGIhS99rE5qKaBXOypWxmxK0svWweGqEbu1XCLjKm_YkiTwjZJ_oIcn5JOO9rvHFkkea76BUsYo5wlzuBBiy7sKqM1fFzOFQq6hdFevNTJAbYH9FiBxYxI-e9DZ5mvLGE6umOjUfn_FAsku2w6Uj5DtvpOKBWYzLEPTEifOqNI9he4zJAmVZniUUMf26SDoEdfu0TyrIS1j_qKaEb-cqR1XDhivdthEBK5m9vxJyXFZ5kofNxwQQkit_oiqJRkCZIt9TWAjCh-frzMHCvA30hkAr-VCD2JfCmmEr3hW_lmwfINaPtFVbHCdCKqdrl6VmF1HObaQ"; // 请求头携带token return config; }, (error: any) => { return Promise.reject(error); } ); //响应拦截 instance.interceptors.response.use( (res) => { //返回数据 const { data } = res; // console.log("返回数据处理", res); if (res.data && res.data.code == "A0000") { return data; } else { ElMessage.warning(res.data.message); } // return data }, (error: any) => { console.log("error==>", error); return Promise.reject(error); } ); } request(options: AxiosRequestConfig) { const instance = axios.create(); options = Object.assign(this.getInsideConfig(), options); this.interceptors(instance, options.url); return instance(options); } } const http = new HttpRequest(); export default http;