# Vue 使用 Axios

📆 2021-12-28 16:41

# 安装

npm install axios --save

# 引入

编辑 src/main.js

import Vue from 'vue'
import App from './App'
import router from './router'
import axios from 'axios' // 引入 Axios 库

axios.defaults.baseURL='https://www.tun6.com' // 这里设置API根目录,末尾不要加斜杠

Vue.config.productionTip = false
Vue.prototype.$axios=axios // 把 Axios 注入到 Vue 的原型中

new Vue({
  el: '#app',
  router,
  axios, // 增加 Axios
  components: { App },
  template: '<App/>'
})

# 用法

推荐配合 JS 异步锁 使用

# Post 请求

this.$axios.post('/users/query',{userId:1}).then(r=>{
    // 成功调用
}).catch(r=>{
    // 失败调用
}).finally(()=>{
    // 不管成功与否都会调用
})

# Get 请求

this.$axios.get('/users/query?userId='+1).then(r=>{
    // 成功调用
}).catch(r=>{
    // 失败调用
}).finally(()=>{
    // 不管成功与否都会调用
})

# 拦截器

const axios_instance=axios.create({})

// 请求拦截器
axios_instance.interceptors.request.use(
  config=>{
    config.headers['Content-Type']='application/json;charset=UTF-8' // 所有的请求增加请求头
    return config
  },
  error=>{
    return Promise.reject(error)
  }
)

// 响应拦截器
axios_instance.interceptors.response.use(
  response=>{
    if(response.data.code!=0)
        return Promise.reject('响应代码错误:'+response.data.code)

    return response.data
  },
  error=>{
    return Promise.reject(error)
  }
);
最后更新于: 8/16/2022, 2:48:47 PM