import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse, AxiosRequestHeaders } from "axios"; import formrHandle from "./format-handle"; import { debugUser } from "@/assets/config/api.config"; import conf from "@/assets/config/host.config"; export const initAxiosInstance: (config: AxiosRequestConfig) => AxiosInstance = config => { let axiosInstance: AxiosInstance = axios.create(config); axiosInstance.interceptors.request.use((config: AxiosRequestConfig) => { // if (config.params && typeof config.params != "string") config.params = utils.filterNull(config.params); if (localStorage.getItem("currentRole") != null) { (config.headers as AxiosRequestHeaders)["currentRole"] = localStorage.getItem("currentRole") as string; } //@ts-ignore const bschUtil = BschLoadUtil.getInstance(); if (!bschUtil.getIsSelf()) { (config.headers as AxiosRequestHeaders)["ticket"] = sessionStorage.getItem("bschTicket") as string; (config.headers as AxiosRequestHeaders)["platform"] = "grzx"; } if (!!conf.isDebug) { //如果是开发环境 for (const key in debugUser) (config.headers as AxiosRequestHeaders)[key] = (debugUser as any)[key]; // (config.headers as AxiosRequestHeaders)["bschapirequest"] = "1"; } return config; }); axiosInstance.interceptors.response.use( response => { return formrHandle(response); }, error => { return formrHandle(error.response); } ); return axiosInstance; };