拦截器一般是再main.js中 , 从而作用于全局 .
定义拦截器
axios.interceptors.request.use(function(config){
//为请求头挂载Authorization字段
config.header.Authorization = store.state.token //登录时挂载token
return config
},function(error){
return Promise.reject(error) //挂载失败
})
定义响应拦截器
axios.interceptors.reponse.use(function(response){
//响应拦截状态码为 2xx 时触发回调,形参中的response是 成功的结果
return response
},function(){
//响应状态码不为 2xx 时触发失败的回调,形参中的error是 失败的结果
if(error.response.status === 401){
//为无效token
//把Vuex中token重置为空 , 并跳转到登录页面
store.commit('updateToken')
router('/login')
}
return Promise.reject(error)
})
拦截器的写法较为固定 , 全局作用 , 大多是复制粘贴套用 .