axios 调用 - qingqinggit/- GitHub Wiki

    that.$axios.post(url, data, {
                    headers: headerData
                    }).then(function (response) {
                       console.log(respones)
                    }).catch(function (error) {
                    console.error(error);
                })
import axios from 'axios'
import { Message, MessageBox } from 'element-ui'
// import { UserModule } from '@/store/modules/user'
// let baseURL = 'http://192.168.40.210:3033/skill-open-platform'
// export const baseURL = 'http://192.168.40.210:3033/skill-open-platform'
// export const baseURL = 'http://ai.haier.net:11000/yanzheng/skill-open-platform'
export const baseURL = process.env.NODE_ENV === 'production' ? 'https://www.haigeek.com/developerskill' : 'http://192.168.40.210:3033/skill-open-platform';
// export const baseURL = process.env.NODE_ENV === 'production' ? 'https://www.haigeek.com/developerskill' : 'http://10.180.97.208:3033/skill-open-platform';

//本地
// export const baseURL = process.env.NODE_ENV === 'production'
// ? 'https://www.haigeek.com/developerskill'
// : 'http://10.180.97.208:3033/skill-open-platform';
axios.defaults.headers.post['Content-Type'] = 'application/json';
axios.defaults.headers.put['Content-Type'] = 'application/json';
axios.defaults.headers.patch['Content-Type'] = 'application/json';

const service = axios.create({
  // baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
  baseURL:baseURL,
  timeout: 10000,
    headers: {
      put:{'Content-Type': 'application/json'},
      post:{'Content-Type': 'application/json'},
      patch:{'Content-Type': 'application/json'},
    },
    // withCredentials: true // send cookies when cross-domain requests
})
// service.defaults.headers.post['Content-Type'] = 'application/json, text/plain, */*';
// service.defaults.headers.put['Content-Type'] = 'application/json, text/plain, */*';
// service.defaults.headers.patch['Content-Type'] = 'application/json, text/plain, */*';
// Request interceptors
service.interceptors.request.use(
  (config) => {
    // Add X-Access-Token header to every request, you can add other custom headers here
    // console.log(config,'***************')
    // if (UserModule.token) {
    //   config.headers['X-Access-Token'] = UserModule.token
    // }
    return config
  },
  (error) => {
    Promise.reject(error)
  }
)

// Response interceptors
service.interceptors.response.use(
  (response) => {
    // Some example codes here:
    // code == 20000: success
    // code == 50001: invalid access token
    // code == 50002: already login in other place
    // code == 50003: access token expired
    // code == 50004: invalid user (user not exist)
    // code == 50005: username or password is incorrect
    // You can change this part for your own usage.
  //  console.log(response);
    const res = response.data
    // if (res.code == 400) {
    //   Message({
    //     message: res.message || 'Error',
    //     type: 'error',
    //     duration: 5 * 1000
    //   })
    // }
    if (res.code !== 200) {
      Message({
        message: res.message ? res.message : '网络错误',
        duration: 3 * 1000
      });
      if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
        // MessageBox.confirm(
        //   '你已被登出,可以取消继续留在该页面,或者重新登录',
        //   '确定登出',
        //   {
        //     confirmButtonText: '重新登录',
        //     cancelButtonText: '取消',
        //     type: 'warning'
        //   }
        // ).then(() => {
        //   // UserModule.ResetToken()
        //   location.reload() // To prevent bugs from vue-router
        // })
      }
      return Promise.reject(new Error(res.message || 'Error'))
    } else {
        return response.data
    }
  },
  (error) => {
      if(error.code === 'ECONNABORTED' || error.message === 'Network Error' || error.message.includes('timeout')){
          Message({
              message: '网络超时',
              duration: 3 * 1000
          });
      }else {
          Message({
              message: error.message ? error.message : '网络错误',
              duration: 3 * 1000
          });
      }
    return Promise.reject(error)
  }
);

export default service