发表于: 2020-04-14 22:53:12

1 1443



今天完成的事情:

1.推进任务


明天计划的事情:

1.推进任务


遇到的问题和收获:

// http request 截器
   axios.interceptors.request.use(
       config => {
           let token = sessionStorage.getItem('sid')
           if (token) {  // 每次求之前判是否存在token,如果存在,则统一在http求的header都加上token,不用每次求都手添加
               // if (token) {  // 是否存在token,如果存在的http header都加上token
               config.headers.Authorization = `token ${store.state.token}`;
           }
           return config;
       },
       err => {
           return Promise.reject(err);
       });


// http response 截器
   axios.interceptors.response.use(
       response => {
           return response;
       },
       error => {
           if (error.response) {
               switch (error.response.status) {
                   case 401:
                       // 返回 401 token信息到登录页
                       store.commit(types.LOGOUT);
                       router.replace({
                           path: 'login',
                           query: {redirect: router.currentRoute.fullPath}
                       })
               }
           }
           return Promise.reject(error.response.data)   // 返回接口返回的错误信息
       })


找到的资料,说是http response拦截器拦截错误信息,如果返回401,则会清除token跳转到登录界面。

统一处理所有http请求和响应,就得用上 axios 的拦截器。通过配置http response inteceptor,当后端接口返回401 Unauthorized(未授权),让用户重新登录。


功能目前还未实现,具体是否应该这样做



返回列表 返回列表
评论

    分享到