import axios from 'axios'
// 配置默认的 host, 假如你的 API host 是: http://api.htmlx.club
axios.defaults.baseURL = 'http://api.htmlx.club'
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
// 在发送请求之前做些什么
return config
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error)
});
// 添加响应拦截器
axios.interceptors.response.use(function (response) {
// 对响应数据做点什么
return response
}, function (error) {
// 对响应错误做点什么
return Promise.reject(error)
});
const routes =[
{
path:'/',
name:'/',
component:Index
},
{
path:'/repository',
name:'repository',
meta:{
requireAuth:true,// 添加该字段, 表示进入这个路由是需要登录的
},
component:Repository
},
{
path:'/login',
name:'login',
component:Login
}
];
router.beforeEach((to,from,next)=>{
if(to.meta.requireAuth){// 判断该路由是否需要登录权限
if(store.state.token){// 通过 vuex state 获取当前的 token 是否存在
next();
}
else{
next({
path:'/login',
query:{redirect: to.fullPath}// 将跳转的路由 path 作为参数, 登录成功后跳转到该路由
})
}
}
else{
next();
}
})
vue--axios 拦截器的简单介绍及使用场景 - 蛋蛋烦蛋蛋 - 博客园