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));

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

  • 相关阅读:
    HDU 1114 Piggy-Bank
    HDU 2955 Robberies
    NTOJ 290 动物统计(加强版)
    POJ 3624 Charm Bracelet
    HDU 2602 Bone Collector
    POJ 1523 SPF(无向图割顶)
    HDU 5311 Hidden String
    HDU 1421 搬寝室
    HDU 1058 Humble Numbers
    POJ 3259 Wormholes(spfa判负环)
  • 原文地址:https://www.cnblogs.com/tommymarc/p/12143644.html
Copyright © 2011-2022 走看看