import axios from 'axios' import store from '@/store' import { Toast } from 'vant' // 根据环境不同引入不同api地址 import { baseApi } from '@/config' // create an axios instance const service = axios.create({ baseURL: baseApi, // url = base api url + request url withCredentials: true // send cookies when cross-domain requests // timeout: 5000 // request timeout }) // request拦截器 request interceptor service.interceptors.request.use( config => { // 不传递默认开启loading if (!config.hideloading) { // loading Toast.loading({ forbidClick: true }) } if (store.getters.token) { config.headers['X-Token'] = '' } return config }, error => { // do something with request error console.log(error) // for debug return Promise.reject(error) } ) // respone拦截器 service.interceptors.response.use( response => { const res = response.data Toast.clear() if (res.status && res.status !== 200) { // 登录超时,重新登录 if (res.status === 401) { store.dispatch('FedLogOut').then(() => { location.reload() }) } return Promise.reject(res || 'error') } else { return Promise.resolve(res) } }, error => { Toast.clear() console.log('err' + error) // for debug return Promise.reject(error) } ) export default service