zoukankan      html  css  js  c++  java
  • vue开发系列 vue ajax拦截

    概要说明

    在开发的过程中,我们需要通过AJAX请求,访问后台获取数据,这个获取数据的时候,当然需要后台需要时登陆状态才能访问数据,当没有登陆的情况,这个时候我们需要跳转到登陆界面进行登陆。

    如果每次请求都要做如下处理,我们的程序逻辑将无比混乱,ajax可以为我们解决这个问题

    具体实现思路是:

    1.发送ajax请求访问后端数据。

    2.后段如果发现没有登陆,那么将会丢出一个exceptionaction的http相应头。

    3.这个判断将在ajax拦截中处理,只要有这个exceptionaction响应头,我们会检查是否有登陆token,如果没有就会去到登陆界面,如果有则尝试使用token自动登陆。

    这个过程将在拦截中完成。

    这个好处是 客户只需要关注业务代码的编写,登陆处理放到拦截中处理,而且所有的请求将都会被拦截

    实现代码

    //lib/axios
    const axiosInstance = axios.create({
        timeout:2000,
        headers:{
            'Content-Type':'application/x-www-form-urlencoded',
            'X-Requested-With':'XMLHttpRequest'
        }
    })

    axios 是我们访问后台的js框架

    定义拦截处理

    //lib/axios
    function interceptAjax(res){
        const tmp = res.headers['exceptionaction'];
    
        if(!tmp) return res;
        //系统已经登陆
        const token = RxUtil.getCache('token');
        if(!token){
            router.push({
                name:'login'
            });
            return;
        }
    }

    使用拦截器

    axiosInstance.interceptors.response.use(res => interceptAjax(res));

    这样每次访问都会经过拦截器,这也给我们一些思路,一些需要统一验证的访问,可以通过拦截器进行处理

  • 相关阅读:
    Mysql(三) Mysq慢查询日志
    Mysql(二) Mysql错误日志
    Mysql(一) Mysql二进制日志
    HA(二)Heartbeat实现LVS集群DR模式下Director高可用
    HA(一)高可用集群原理
    LVS(五)LVS集群RealServer高可用健康监测
    LVS(四)LVS集群DR模式
    LVS(三)LVS集群NAT模式
    LVS(二)LVS集群中实现的三种负载均衡技术
    Cocos2d-JS实现的打飞机
  • 原文地址:https://www.cnblogs.com/tommymarc/p/12143644.html
Copyright © 2011-2022 走看看