美文网首页
axios封装

axios封装

作者: 折叠幸福 | 来源:发表于2020-04-21 11:20 被阅读0次

main.js

import AxiosPlugin from './assets/js/axiosPlugin.js'
Vue.use(AxiosPlugin)

axiosPlugin.js

import axios from 'axios'
import Vue from 'vue'
import headers from './axios_headers'
import router from '../../router/index.js'

const Axios = axios.create({
  timeout: 15000,
})

Axios.interceptors.request.use(
    config => {
        return headers.initheaders(config)
    },
    error => {
        return Promise.reject(error);
    }
);

Axios.interceptors.response.use(
    response => {
      if(response.data.code != 0){
        window.$Vue.$message({
          message:response.data.message,
          center:true,
          type:'error'
        })
        return response;
      }
      return response
    },
    error => {
        // console.log('is error')
        // console.log(error)
onst { config, code, message } = error
        // console.log(message)
         if (code === 'ECONNABORTED' || message === 'Network Error') { // 请求超时
               window.$Vue.$message({
                 message:'网络异常,请检查网络连接',
                 center:true,
                 type:'error'
               })
               return Promise.reject(error)
         }

         window.$Vue.$message({
           message:'服务端出错 : '+error.message,
           center:true,
           type:'error'
         })
  
         return Promise.reject(error)
    }
)


export default {
  install(Vue) {
    Object.defineProperty(Vue.prototype, '$http', { value: Axios })
  }
}

axios_header.js

const initheaders = function (config){
    if(localStorage.accesstoken){
        config.headers.token = localStorage.accesstoken
    }

    if(config.method == 'post'){
        if(!config.data){
            config.data = {}
        }
        config.data.appkey = 'NOVO_EDU_BEAUTY_SCIENCE_PC'
        config.data.accessToken = localStorage.accesstoken
    }

    if(config.method == 'get' ){
        if(!config.params){
            config.params = {}
        }
        config.params.appKey = 'NOVO_EDU_BEAUTY_SCIENCE_PC'
    }
    

    if(process.env == "production" || process.env.NODE_ENV == "production"){
        config.baseURL  = "https://" + window.$Vue.$clientSDK.getHost() + '/portal'
        //config.baseURL  = "https://dev.bos.kquestions.com/portal"
    }
    return config;
}

export default {
    initheaders:initheaders
}

相关文章

网友评论

      本文标题:axios封装

      本文链接:https://www.haomeiwen.com/subject/ahftzctx.html