Vue axios 封装

request.js文件

import axios from 'axios'

import { Message } from 'element-ui'

const headers = {

  'Content-type': 'application/json;charset-UTF-8'

}

const Axios = axios.create({

  timeout: 30000,

  withCredentials: true,

  headers

})

Axios.interceptors.response.use(

  response => {

    if (response.data.code === 400002) {

      Message({

        type: 'error',

        message: response.data.message

      })

    }

    if (response.data.code !== 0) {

      Message({

        type: 'error',

        message: response.data.message

      })

      return Promise.reject(response.data)

    }

    return response.data

  },

  error => {

    const msg = error.toString()

    const url = error.request.responseURL

    Message({ type: 'error', message: `${msg} ${url}` })

    return Promise.reject(error)

  }

)

export const $http = Axios

export default {

  install (Vue, Option) {

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

  }

}

posted @ 2020-06-16 16:07  奇德隆咚强  阅读(124)  评论(0)    收藏  举报