发表于: 2020-04-16 21:21:35

1 1818



今天完成的事情:

1.推进任务


明天计划的事情:

1.推进任务


遇到的问题和收获:


let http = Axios.create({
   timeout: 3000,  //超时配置 3
   responseType: 'json',  // 响应数据格式
   responseEncoding: 'utf8', // 响应数据编码

});
http.interceptors.request.use(
   config => {
       console.log('request请求成功');
       return config;
   },
   error => {
       console.log(error);
       console.log('request请求失败');
       return Promise.reject();
   }
);

http.interceptors.response.use(
   response => {
       console.log('response响应成功');
       console.log(response);
       let role = sessionStorage.getItem('sid')
       if (response.status === 200) {
           console.log('response.status200');
           // 只有在当前路由不是登录页面才跳转
           if( router.currentRoute.path !== '/login' && !role){
           alert('请登录后再操作!')
               router.replace({
                   path: '/login',
                   query: {redirect: router.currentRoute.fullPath}
               })
           }

           return response;

       } else {
           console.log(3);
           Promise.reject();
       }
   },
   error => {
       console.log('response响应失败');
       console.log(error);
       switch (error.response.status) {
           case 401:
               // 返回 401 清除token信息并跳转到登录页面
               // store.commit(types.LOGOUT);
               window.sessionStorage.removeItem('sid')

               // 只有在当前路由不是登录页面才跳转
               router.currentRoute.path !== 'login' &&
               router.replace({
                   path: 'login',
                   query: {redirect: router.currentRoute.fullPath}
               })
       }
       return Promise.reject();
   }
);

export default http;


用axios的interceptors拦截请求和响应。


 if (response.status === 200) {
           console.log('response.status200');
           // 只有在当前路由不是登录页面才跳转
           if( router.currentRoute.path !== '/login' && !role){
           alert('请登录后再操作!')
               router.replace({
                   path'/login',
                   query{redirectrouter.currentRoute.fullPath}
               })
           }

           return response;

响应成功后,判断当前路由地址是否是login且是否有登录后储存的sessionStorage状态,没有的话就跳转到登录界面。

暂时使用没问题。还测试下看看




返回列表 返回列表
评论

    分享到