const config = { mockApi:"https://www.fastmock.site/mock/4b1d82b74b298c9bcdbf59c8793de4d2/api", baseApi: `/`, mock: true } // 创建axios 实例对象,添加全局配置 const service = axios.create({ baseURL: config.mockApi, timeout: 8000 }) // 请求拦截 service.interceptors.request.use((req)=>{ // todo // const { token = "" } = storage.getItem('userInfo') || {}; const headers = req.headers; let token = '' if(!headers.Authorization) headers.Authorization = "Bearer " + token; return req; }) // 响应拦截 service.interceptors.response.use((res)=>{ const {data, errcode, errmsg } = res.data; if( errcode == 200){ // console.log('响应拦截data=>', data) if(data == null){ return [] } return data }else if(errcode == 70006){ console.log({'errmsg' : errmsg}) return {'errmsg' : errmsg} }else { return { 'errmsg': '业务失败' } } }) function request(options) { let isMock = config.mock; if(typeof options.mock != "undefined"){ isMock = options.mock; } options.method = options.method || 'get'; if(options.method.toLowerCase() === 'get'){ options.params = options.data; } // console.log(isMock) service.defaults.baseURL = isMock ? config.mockApi : config.baseApi; // console.log(service.defaults.baseURL) return service(options) } ['get', 'post' ,'put' ,'delete' ,'patch'].forEach((item) =>{ request[item] = (url, data, options) => { return request({ url, data, method:item, ...options }) } })