vue ajax 拦截原理与实现方法示例


Posted in Javascript onNovember 29, 2019

本文实例讲述了vue ajax 拦截原理与实现方法。分享给大家供大家参考,具体如下:

概要说明

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

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

具体实现思路是:

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

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

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

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

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

实现代码

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

axios 是我们访问后台的JS框架。

定义拦截处理。

function interceptAjax(res){
  var tmp = res.headers["exceptionaction"];
  if(!tmp) return res;
  //系统已经登录。
  var token = RxUtil.getCache("token");
  if(!token) {
    router.push({
      name: "login"
    });
    return;
  }

使用拦截器。

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

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

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
prototype1.4中文手册
Sep 22 Javascript
js实现权限树的更新权限时的全选全消功能
Feb 17 Javascript
基于Jquery制作的幻灯片图集效果打包下载
Feb 12 Javascript
JQuery扩展插件Validate 1 基本使用方法并打包下载
Sep 05 Javascript
js实现通用的微信分享组件示例
Mar 10 Javascript
基于JQuery制作可编辑的表格特效
Dec 23 Javascript
JS获取Table中td值的方法
Mar 19 Javascript
原生JS实现简单放大镜效果
Feb 08 Javascript
JS中call()和apply()的功能及用法实例分析
Jun 28 Javascript
利用Angular7开发一个Radio组件的全过程
Jul 11 Javascript
解决layui-table单元格设置为百分比在ie8下不能自适应的问题
Sep 28 Javascript
微信小程序批量上传图片到七牛(推荐)
Dec 19 Javascript
VUE 实现动态给对象增加属性,并触发视图更新操作示例
Nov 29 #Javascript
js中关于Blob对象的介绍与使用
Nov 29 #Javascript
js blob类型url的视频下载问题的解决
Nov 29 #Javascript
JavaScript之Blob对象类型的具体使用方法
Nov 29 #Javascript
VuePress 中如何增加用户登录功能
Nov 29 #Javascript
Vue.directive 实现元素scroll逻辑复用
Nov 29 #Javascript
Vue.js实现大屏数字滚动翻转效果
Nov 29 #Javascript
You might like
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
ThinkPHP跳转页success及error模板实例教程
2014/07/17 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
2014/08/20 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
lib.utf.js
2007/08/21 Javascript
基于JQuery的日期联动实现代码
2011/02/24 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/25 Javascript
JS函数重载的解决方案
2014/05/13 Javascript
js用Date对象的setDate()函数对日期进行加减操作
2014/09/18 Javascript
常用的jquery模板插件——jQuery Boilerplate介绍
2014/09/23 Javascript
JavaScript动态创建form表单并提交的实现方法
2015/12/10 Javascript
JS判断Android、iOS或浏览器的多种方法(四种方法)
2017/06/29 Javascript
JS中正则表达式要注意lastIndex属性
2017/08/08 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
2018/05/08 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
vue动态设置img的src路径实例
2018/09/18 Javascript
JS函数内部属性之arguments和this实例解析
2018/10/07 Javascript
微信小程序实现侧边栏分类
2019/10/21 Javascript
JS实现canvas简单小画板功能
2020/06/23 Javascript
python实现的爬取电影下载链接功能示例
2019/08/26 Python
python实现XML解析的方法解析
2019/11/16 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
2020/05/25 Python
HTML5 canvas基本绘图之图形变换
2016/06/27 HTML / CSS
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
Java模拟试题
2014/11/10 面试题
顺丰快递Java软件工程师面试题
2015/07/31 面试题
英语专业个人求职信范文
2014/02/01 职场文书
放飞蜻蜓反思
2014/02/05 职场文书
老干部工作先进集体事迹材料
2014/05/21 职场文书
单位委托函范文
2015/01/29 职场文书
煤矿安全保证书
2015/02/27 职场文书
餐饮店长岗位职责
2015/04/14 职场文书
小学副班长竞选稿
2015/11/21 职场文书
Win11如何查看显卡型号 Win11查看显卡型号的方法
2022/08/14 数码科技