Vue项目配置axios拦截器

  1. 引入依赖
yarn add axios
  1. 创建plugins/axios.js文件
import axios from 'axios';
import Element from 'element-ui'
import router from "../router/index";
import Vue from "vue";

axios.defaults.baseURL = 'http://localhost:8080'

const request = axios.create({
    timeout: 5000,
    headers: {
        'Content-Type': 'application/json;charset=utf-8'
    }
})
request.interceptors.request.use(config => {
    config.headers['Authorization'] = localStorage.getItem('token');
    return config;
})
request.interceptors.response.use(response => {
    if (response.data.code === 200) {
        return response
    } else {
        Element.Message.error(response.data.msg ? response.data.msg : '系统异常!', {duration: 3 * 1000})
        return Promise.reject(response.data.msg)
    }
}, error => {
    console.log(error)
    if (error.data) {
        error.message = error.response.data.msg
    }
    if (error.status === 401) {
        router.push("/login")
    }
    Element.Message.error(error.message, {duration: 3 * 1000})
    return Promise.reject(error)
})
Vue.prototype.$axios=request;
  1. 主函数main.js引入
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

Vue.config.productionTip = false

//elementUI
import './plugins/elementUI'
//axios请求
import  './plugins/axios'
//全局样式
import './assets/css/main.css'
//mockjs
import './plugins/mock'

new Vue({
    router,
    store,
    render: h => h(App)
}).$mount('#app') import Vue from 'vue'import App from './App.vue'import router from './router'import store from './store'Vue.config.productionTip = false//elementUIimport './plugins/elementUI'//axios请求import  './plugins/axios'//全局样式import './assets/css/main.css'//mockjsimport './plugins/mock'new Vue({    router,    store,    render: h => h(App)}).$mount('#app')import Vue from 'vue'import App from './App.vue'import router from './router'import store from './store'Vue.config.productionTip = falseimport './plugins/elementUI'import './plugins/axios'import './assets/css/main.css'//引入mockjsimport './plugins/mock'new Vue({    router,    store,    render: h => h(App)}).$mount('#app')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容