axios.js 1.3 KB
Newer Older
yma16's avatar
yma16 已提交
1
'use strict'
yma16's avatar
yma16 已提交
2

yma16's avatar
yma16 已提交
3 4
import Vue from 'vue'
import axios from 'axios'
yma16's avatar
yma16 已提交
5 6 7 8 9 10 11 12 13 14

// Full config:  https://github.com/axios/axios#request-config
// axios.defaults.baseURL = process.env.baseURL || process.env.apiUrl || '';
// axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

let config = {
  // baseURL: process.env.baseURL || process.env.apiUrl || ""
  // timeout: 60 * 1000, // Timeout
  // withCredentials: true, // Check cross-site Access-Control
yma16's avatar
yma16 已提交
15
}
yma16's avatar
yma16 已提交
16

yma16's avatar
yma16 已提交
17
const _axios = axios.create(config)
yma16's avatar
yma16 已提交
18 19

_axios.interceptors.request.use(
yma16's avatar
yma16 已提交
20
  function (config) {
yma16's avatar
yma16 已提交
21
    // Do something before request is sent
yma16's avatar
yma16 已提交
22
    return config
yma16's avatar
yma16 已提交
23
  },
yma16's avatar
yma16 已提交
24
  function (error) {
yma16's avatar
yma16 已提交
25
    // Do something with request error
yma16's avatar
yma16 已提交
26
    return Promise.reject(error)
yma16's avatar
yma16 已提交
27
  }
yma16's avatar
yma16 已提交
28
)
yma16's avatar
yma16 已提交
29 30 31

// Add a response interceptor
_axios.interceptors.response.use(
yma16's avatar
yma16 已提交
32
  function (response) {
yma16's avatar
yma16 已提交
33
    // Do something with response data
yma16's avatar
yma16 已提交
34
    return response
yma16's avatar
yma16 已提交
35
  },
yma16's avatar
yma16 已提交
36
  function (error) {
yma16's avatar
yma16 已提交
37
    // Do something with response error
yma16's avatar
yma16 已提交
38
    return Promise.reject(error)
yma16's avatar
yma16 已提交
39
  }
yma16's avatar
yma16 已提交
40
)
yma16's avatar
yma16 已提交
41

yma16's avatar
yma16 已提交
42 43 44
Plugin.install = function (Vue, options) {
  Vue.axios = _axios
  window.axios = _axios
yma16's avatar
yma16 已提交
45 46
  Object.defineProperties(Vue.prototype, {
    axios: {
yma16's avatar
yma16 已提交
47 48
      get () {
        return _axios
yma16's avatar
yma16 已提交
49 50 51
      }
    },
    $axios: {
yma16's avatar
yma16 已提交
52 53
      get () {
        return _axios
yma16's avatar
yma16 已提交
54
      }
yma16's avatar
yma16 已提交
55 56 57
    }
  })
}
yma16's avatar
yma16 已提交
58 59 60

Vue.use(Plugin)

yma16's avatar
yma16 已提交
61
export default Plugin