上一篇说axios并发的时候有提到 axios的请求统一管理是为了创建拦截器

具体说一下拦截器的创建

import Vue from 'vue';

import axios from 'axios';    //  引入axios

import { Message } from 'element-ui';  // 为了方便统一提示 引入element的Message

创建axios实例

  const request = axios.create({
      baseURL: myUrl , // api的base_url
      timeout: 30 * 60 * 1000 // request timeout
  })
  request.__proto__ = axios;
 
/**
 * 创建请求拦截器
 */
request.interceptors.request.use(
    config => {
// 获取token 统一在请求的headers里面加入Access-Token
        const token = Vue.ls.get(ACCESS_TOKEN)
        if (token) {
            config.headers['Access-Token'] = token;
        }
        /** 清楚get方法的缓存:尤其是IE浏览器缓存 */
        if (config.method.toLocaleUpperCase() === 'GET') {
            if (!config.params) config.params = {};
            config.params['sendleTime'] = new Date().getTime();
        }
        return config;
    },
    error => {
        Message({
            message: '客户端请求错误: ' + error.message,
            type: 'error',
            duration: 3 * 1000
        });
        return Promise.reject(error)
    }
)
 
/**
 * 创建响应拦截器
 */
request.interceptors.response.use(
    response => {
        const res = response.data;
        const code = res.status,
        if (code !== 200) {//状态码 !=200时,统一处理异常
            return Promise.reject(res.msg);
        }else {
            return response.data;
        }
    },
    error => {
        let errMsg = "请求发生错误"
        Message({
            message: errMsg,
            type: 'error',
            duration: 3 * 1000
        })
        return Promise.reject(error)
    }
)
 

创建axios拦截器的更多相关文章

  1. vue axios拦截器 + 自编写插件 实现全局 loading 效果;

    项目需求:用自定义的 .gif 图标实现全局 loading 效果:为避免在每个页面手动添加,且简单高效的实现,经查阅资料,最终采用了 vue axios拦截器 + 自编写 loading 插件:下面 ...

  2. Vue基于vuex、axios拦截器实现loading效果及axios的安装配置

    准备 利用vue-cli脚手架创建项目 进入项目安装vuex.axios(npm install vuex,npm install axios) axios配置 项目中安装axios模块(npm in ...

  3. axios拦截器的使用方法

    很多时候我们需要在发送请求和响应数据的时候做一些页面处理,比如在请求服务器之前先判断以下用户是登录(通过token判断),或者设置请求头header,或者在请求到数据之前页面显示loading等等,还 ...

  4. vue导航守卫和axios拦截器的区别

    在Vue项目中,有两种用户登录状态判断并处理的情况,分别为:导航守卫和axios拦截器. 一.什么是导航守卫? vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航.(在路由跳转时 ...

  5. 12. 前后端联调 + ( proxy代理 ) + ( axios拦截器 ) + ( css Modules模块化方案 ) + ( css-loader ) + ( 非路由组件如何使用history ) + ( bodyParser,cookieParser中间件 ) + ( utility MD5加密库 ) + ( nodemon自动重启node ) + +

    (1) proxy 前端的端口在:localhost:3000后端的端口在:localhost:1234所以要在webpack中配置proxy选项 (proxy是代理的意思) 在package.jso ...

  6. Vue2学习小记-给Vue2路由导航钩子和axios拦截器做个封装

    1.写在前面 最近在学习Vue2,遇到有些页面请求数据需要用户登录权限.服务器响应不符预期的问题,但是总不能每个页面都做单独处理吧,于是想到axios提供了拦截器这个好东西,再于是就出现了本文. 2. ...

  7. axios拦截器搭配token使用

    在了解到cookie.session.token的作用后学习token的使用 cookie是随着url将参数发送到后台,安全性最低,并且大小受限,不超过4kb左右,它的数据保存在客户端 session ...

  8. Axios拦截器配置

    Axios 拦截器的配置如下 分三块:基础配置.请求之前拦截.响应之前拦截 发送所有请求之前和操作服务器响应数据之前对这种情况过滤. http request 请求拦截器 每次发送请求之前判断是否存在 ...

  9. 交互-通过axios拦截器添加token认证

    通过axios拦截器添加token认证 一.通过axios请求拦截器添加token,保证拥有获取数据的权限 通常访问接口需要相关权限,通常是需要携带token如下所示 那如何在请求头中添加token? ...

随机推荐

  1. 泛型的类型擦除后,fastjson反序列化时如何还原?

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra~ 在前面的文章中,我们讲过Java中泛型的类型擦除,不过有小伙伴在后台留言提出了一个问题,带有泛型的实体的反序列化 ...

  2. springboot Redistemplate的execute和 executePipelined

    springboot 的 RedisTemplate 的 execute 和 executePipelined 功能的区别 1.execute 以下是 springboot 官网原文: Redis p ...

  3. ASP.NET CORE 项目搭建(2022 年 3 月版)

    ASP.NET CORE 项目搭建(2022 年 3 月版) 自读 沉淀了多年的技术积累,在 .NET FRAMEWORK 的框架下尝试造过自己的轮子. 摸索着闭门造过 基于 OWIN 服务后端. 摸 ...

  4. 29 面向对象编程 static 关键字

    补充:static 代码 // static public class Student{ private static int age; // 静态的变量 多线程 private double sco ...

  5. 还在写SQL做SAP二开?通过RFC调用NetWeaver,让HANA数据库操作更可靠

    相比于从零开始构建全套信息化系统,基于成熟的ERP等行业软件做二次开发是更多中大型企业应对个性化软件需求的首选方案.如何在二开模块中,可靠地对成品软件的数据库进行读写操作,以满足单据自动创建.元数据自 ...

  6. MATLAB绘制一幅中国地图

    今天博主跟大家讲一下如何用MATLAB制作一幅中国地图,那废话不多说,我们先看一下最终效果吧. mercator墨卡托圆柱投影地图 lambert兰伯特圆锥投影地图 一张中国地图大概包括以下要素: 中 ...

  7. Java 开发工具之Myeclipse快捷键

  8. Discuz!X系列全版本后台sql注入复现

    圈子某位大佬公布的0day,拿来刷一刷,漏洞分析请移步大佬文章.大佬链接 0x01 环境准备 1.首先去码云下载最新版本的discuz(DiscuzX 3.4 R20191201). 2.将upaod ...

  9. Cobalt Strike的使用

    0x00  Cobalt Strike简介       Cobalt Strike 一款以metasploit为基础的GUI的框架式渗透测试工具,集成了端口转发.服务扫描,自动化溢出,多模式端口监听, ...

  10. hutool包里的ObjectUtil.isNull和ObjectUtil.isEmpty的区别

    大家都用过hutool包把,包路径为:cn.hutool.core.util,最近再使用的过程中一直没高明白ObjectUtil.isEmpty和ObjectUtil.isNull两者到底有那些区别, ...