封装 axios

import axios from 'axios'

let instance = axios.create({
  baseURL: process.env.DOMAIN, //这个是vue-cli环境变量的配置
 })

instance.defaults.transformRequest = [function (data) {
  // 数据序列化  请求前的处理
   return JSON.stringify(data)
}]
instance.defaults.validateStatus = function (status) {
  return true
}
instance.interceptors.request.use(config => {
  config.headers.Accept = 'application/json'
  config.headers['Content-Type'] = 'application/json'
  return config
}, err => {

  return Promise.reject(err)
})
// 添加响应拦截器
instance.interceptors.response.use(response => {
  if (response.status === 200) {
    return Promise.resolve(response)
  } else {
        return Promise.reject(response)
  }
})

let requestMethod = ['get', 'post', 'delete', 'put', 'patch', 'update']
let requester = {}
requestMethod.forEach((method) => {
  requester[method] = function (url = '', data = {}, config = {}) {
    return new Promise((resolve, reject) => {
      instance[method](url, data, config).then((response) => {
          console.log(response)
          //这里写自己的状态,我们后台状态返回成功是200.
        if (response.data ==200) {
        resolve(response.data)

        }

      }).catch((response) => {

        reject(response)
      })
    })
  }
})

export default requester

猜你喜欢

转载自blog.csdn.net/Salunone/article/details/81875581