博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[代码笔记]VUE路由根据返回状态判断添加响应拦截器
阅读量:5982 次
发布时间:2019-06-20

本文共 1873 字,大约阅读时间需要 6 分钟。

//返回状态判断(添加响应拦截器)Axios.interceptors.response.use(  res => {    //对响应数据做些事    if (res.data && !res.data.success) {      Message({        //  饿了么的消息弹窗组件,类似toast        showClose: true,        message: res.data.error.message.message          ? res.data.error.message.message          : res.data.error.message,        type: "error"      });      return Promise.reject(res.data.error.message);    }    return res;  },  error => {    // 用户登录的时候会拿到一个基础信息,比如用户名,token,过期时间戳    // 直接丢localStorage或者sessionStorage    if (!window.localStorage.getItem("loginUserBaseInfo")) {      // 若是接口访问的时候没有发现有鉴权的基础信息,直接返回登录页      router.push({        path: "/login"      });    } else {      // 若是有基础信息的情况下,判断时间戳和当前的时间,若是当前的时间大于服务器过期的时间      // 乖乖的返回去登录页重新登录      let lifeTime =        JSON.parse(window.localStorage.getItem("loginUserBaseInfo")).lifeTime *        1000;      let nowTime = new Date().getTime(); // 当前时间的时间戳      console.log(nowTime, lifeTime);      console.log(nowTime > lifeTime);      if (nowTime > lifeTime) {        Message({          showClose: true,          message: "登录状态信息过期,请重新登录",          type: "error"        });        router.push({          path: "/login"        });      } else {        // 下面是接口回调的satus ,因为我做了一些错误页面,所以都会指向对应的报错页面        if (error.response.status === 403) {          router.push({            path: "/error/403"          });        }        if (error.response.status === 500) {          router.push({            path: "/error/500"          });        }        if (error.response.status === 502) {          router.push({            path: "/error/502"          });        }        if (error.response.status === 404) {          router.push({            path: "/error/404"          });        }      }    }    // 返回 response 里的错误信息    let errorInfo =  error.data.error ? error.data.error.message : error.data;    return Promise.reject(errorInfo);  });

 

转载地址:http://fkrox.baihongyu.com/

你可能感兴趣的文章
Django+ PowerShell 管理AD系统
查看>>
MFA(Multi-Factor Authentication)应用之Outlook2013排错
查看>>
Kickstart+HTTP+DHCP+TFTP全自动批量安装部署Linux系统
查看>>
Docker学习之容器
查看>>
17.Azure备份(MARS)代理(上)
查看>>
解决MSN无法登录问题的意外收获
查看>>
不只是折腾!OS X 10.10 Yosemite 改造攻略
查看>>
演示:通过实验取证IP报文的各个字段
查看>>
C#设计模式(6)——原型模式(Prototype Pattern)
查看>>
Lync日常维护之三:客户端显示状态未更新的处理方法
查看>>
Oracle网格控制器OMA端安装Yast
查看>>
open***负载均衡高可用多种解决方案思路及实战讲解(总)
查看>>
自动部署LNMP脚本
查看>>
Rethinking PID 1 (About Systemd)
查看>>
我的家庭私有云计划-20
查看>>
在VMware Workstation中批量创建上千台虚拟机(上)
查看>>
实战操作百度文库、百度经验营销,让您的“流量”稳居首页
查看>>
Android应用程序组件Content Provider应用实例(1)
查看>>
本人组织在校学生,参加51CTO举办的“2012云计算架构师峰会”!
查看>>
iOS开发那些事--编写OCUnit测试方法-应用测试方法
查看>>