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 相关文章推荐
js 禁用浏览器的后退功能的简单方法
Dec 10 Javascript
HTML长文本截取含有HTML代码同样适用的两种方法
Jul 31 Javascript
jQuery网页版打砖块小游戏源码分享
Aug 20 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
Aug 17 Javascript
jQuery的extend方法【三种】
Dec 14 Javascript
Bootstrap下拉菜单Dropdowns的实现代码
Mar 17 Javascript
深入理解ES6之数据解构的用法
Jan 13 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
Sep 27 Javascript
vue计算属性computed的使用方法示例
Mar 13 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
Jan 05 Javascript
如何制作自己的原生JavaScript路由
May 05 Javascript
JavaScript实现优先级队列
Dec 06 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
介绍几个array库的新函数 php
2006/12/29 PHP
自动分页的不完整解决方案
2007/01/12 PHP
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
2012/01/16 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
2014/05/29 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
2015/04/01 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
2015/08/23 PHP
jQuery 性能优化指南 (1)
2009/05/21 Javascript
jQuery EasyUI 中文API Button使用实例
2010/04/14 Javascript
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
Javascript判断图片尺寸大小实例分析
2014/06/16 Javascript
javascript弹出页面回传值的方法
2015/01/28 Javascript
javascript相关事件的几个概念
2015/05/21 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
jQuery获取URL请求参数的方法
2015/07/18 Javascript
jquery实现select下拉框美化特效代码分享
2015/08/18 Javascript
jquery+css实现动感的图片切换效果
2015/11/25 Javascript
基于javascript实现图片左右切换效果
2016/01/25 Javascript
深入理解Angular中的依赖注入
2017/06/26 Javascript
如何解决jQuery 和其他JS库的冲突
2020/06/22 jQuery
js实现限定范围拖拽的示例
2020/10/26 Javascript
[52:15]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS LGD-GAMING
2014/05/23 DOTA
使用python绘制人人网好友关系图示例
2014/04/01 Python
Python实现递归遍历文件夹并删除文件
2016/04/18 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
python实现文件的备份流程详解
2019/06/18 Python
如何使用localstorage代替cookie实现跨域共享数据问题
2018/04/18 HTML / CSS
成人毕业生自我鉴定
2013/10/18 职场文书
酒吧员工的岗位职责
2013/11/26 职场文书
校园新闻广播稿
2014/01/10 职场文书
英语一分钟演讲稿
2014/04/29 职场文书
领导干部查摆“四风”问题自我剖析材料思想汇报
2014/10/05 职场文书
2015年班主任个人工作总结
2015/03/31 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
首都博物馆观后感
2015/06/05 职场文书
转变工作作风心得体会
2016/01/23 职场文书
幼师自荐信范文(2016推荐篇)
2016/01/28 职场文书