import axios from "axios"; import config from "@/config" export default class http { constructor() { this.instance = axios.create({ baseURL: config.checkUrl(), timeout: 3000, headers: {'X-Custom-Header': 'foobar'} }); this.interceptors() } async get(params) { return await this.instance.get(params.url, { params: params.data, headers: Object.assign({ token: localStorage.getItem("token"), "Content-Type": "application/json;" }, params.headers) }) } async post(params) { return await this.instance.post(params.url, params.data, { headers: Object.assign({ token: localStorage.getItem("token"), "Content-Type": "application/json;" }, params.headers) }) } interceptors() { // 添加请求拦截器 this.instance.interceptors.request.use(function (config) { // 在发送请求之前做些什么 return config; }, function (error) { // 对请求错误做些什么 return Promise.reject(error); }); // 添加响应拦截器 this.instance.interceptors.response.use(function (response) { // 对响应数据做点什么 switch (response.data.status) { case 200: return response.data.result break; case 404: throw new Error(response.data.msg); break; } }, function (error) { // 对响应错误做点什么 return Promise.reject(error); }); } }