import axios from 'axios' import { storageKey } from '@/utils/constants' axios.interceptors.request.use(config => { const token = localStorage.getItem(storageKey.token) if (token) { config.headers.Authorization = token // 请求头token } return config }, err => Promise.reject(err) ) const accountErrorCode = [518003, 518004, 518005, 518006, 518007, 518008] // 账号锁定等 const licenceErrorCode = [711001] // 若get请求的url中带问号,则将url上的参数截取,改为对象形式传参 axios.interceptors.request.use( config => { if (config.method === 'get') { const url = config.url const index = url.indexOf('?') if (index > -1) { const pre = url.substring(0, index) const suf = url.substring(index + 1, url.length) const paramsArr = suf.split('&') const params = {} paramsArr.forEach(p => { const i = p.indexOf('=') if (i > -1) { params[p.substring(0, i)] = p.substring(i + 1, p.length) } else { params[p] = '' } }) config = { ...config, url: pre, params: params } } } return config } ) axios.interceptors.response.use( response => { if (licenceErrorCode.indexOf(response.data.code) !== -1) { localStorage.removeItem(storageKey.token) window.location.href = '/' } else if (response.status === 200) { if (accountErrorCode.indexOf(response.data.code) !== -1) { localStorage.removeItem(storageKey.token) window.location.href = '/' } } return response }, error => { return Promise.reject(error) } ) export function getForDebug (url, params) { return new Promise((resolve) => { axios.get(url, { params: params }).then(response => { resolve(response) }).catch(err => { if (err.response) { resolve(err.response) } else if (err.message) { resolve(err.message) } }) }) } export function postForDebug (url, params, headers) { return new Promise(resolve => { axios.post(url, params, { headers: headers }).then(response => { resolve(response, response) }).catch(err => { if (err.response) { resolve(err.response) } else if (err.message) { resolve(err.message) } }) }) } export function get (url, params) { return new Promise((resolve) => { axios.get(url, { params: params }).then(response => { resolve(response.data) }).catch(err => { if (err.response) { resolve(err.response.data) } else if (err.message) { resolve(err.message) } }) }) } export function post (url, params, headers) { return new Promise(resolve => { axios.post(url, params, { headers: headers }).then(response => { resolve(response.data, response) }).catch(err => { if (err.response) { resolve(err.response.data) } else if (err.message) { resolve(err.message) } }) }) } export function put (url, params, headers) { return new Promise((resolve) => { axios.put(url, params, { headers: headers }).then(response => { resolve(response.data, response) }).catch(err => { if (err.response) { resolve(err.response.data) console.log(err) } else if (err.message) { resolve(err.message) } }) }) } export function del (url, params) { return new Promise((resolve) => { axios.delete(url, params).then(response => { resolve(response.data, response) }).catch(err => { if (err.response) { resolve(err.response.data) } else if (err.message) { resolve(err.message) } }) }) }