涵盖基础地址、判断是否有token、解析data、请求拦截器、响应拦截器

import axios from 'axios'
import store from '@/store'

export const baseURL = 'www.baidu.com'
const instance = axios.create({
  baseURL,
  timeout: 5000
})

// 请求拦截器
instance.interceptors.request.use(config => {
  const profile = store.state.user.profile
  if (profile && profile.token) {
    config.headers.authorization = 'Bearer ' + profile.token
  }
  return config
}, err => Promise.reject(err))

// 响应拦截器
instance.interceptors.response.use(config => {

  return config.data
}, err => Promise.reject(err))

/**
 * @param { String } url url地址 
 * @param { String } method 方法名 -> get post
 * @param { Object } submitData 传递的参数 -> 对象
 */

export default (url, method, submitData) => {
  return instance({
    url,
    method,
    [method.toLowerCase() === 'get' ? 'params' : 'data']: submitData
  })
}

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐