拦截器

96 阅读1分钟

拦截器一般是再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)
})

拦截器的写法较为固定 , 全局作用 , 大多是复制粘贴套用 .