import Vue from 'vue'
import axios from 'axios'
import router from 'vue-router'
export const $axios = axios.create({ // 这里是配置项
timeout: 7000,
})
// 拦截请求
$axios.interceptors.request.use(
config => {
console.log(config);
let t = Vue.prototype.getCookie('token');
if (t) {
config.headers.t = t
} else {
// router.replace({path: '/'})
}
return config
},
err => {
return Promise.reject(err)
}
)
// 拦截响应
$axios.interceptors.response.use(
response => {
console.log(response)
return response
},
err => {
console.log(err);
if (err.response) {
switch (err.response.status) {
case 401:
// 这里写清除token的代码
router.replace({
path: 'login',
query: {redirect: router.currentRoute.fullPath} // 登录成功后跳入浏览的当前页面
})
}
}
return Promise.reject(err)
}
)
在main.js中引入
import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
// import axios from 'axios'
import {$axios} from './assets/lib/axios'//放在后面打包会出错,应放在本处
import VueHighcharts from 'vue-highcharts'
import $ from 'jquery'
import store from './store'
import Vuex from 'vuex';
import App from './App'
import router from './router'
Vue.config.productionTip = false;
Vue.use(ElementUI);
Vue.use(VueHighcharts);
Vue.use(Vuex);
Vue.prototype.$http = $axios等等