博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue 开发系列(二) vue ajax 拦截
阅读量:6910 次
发布时间:2019-06-27

本文共 986 字,大约阅读时间需要 3 分钟。

概要说明

在开发的过程中,我们需要通过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));

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

转载于:https://www.cnblogs.com/yg_zhang/p/8836435.html

你可能感兴趣的文章
一天一点T-SQL:获取每个计划任务的步骤
查看>>
CET免准考证号查分咯
查看>>
Hbuilder内置的svn插件为1.6版的,如何升级为1.8版的?
查看>>
异常处理、模块包、时间模块、subprocess(调用shell命令)
查看>>
我的友情链接
查看>>
Vmware Esxi外接移动硬盘到虚拟机拷贝数据慢
查看>>
ASP.NET MVC 之controller 找不到action 的处理方式
查看>>
利用TC进行流量控制(Qos) 原文:姜道友 著
查看>>
Samba简述
查看>>
人到中年,技术何以糊口
查看>>
错误代码:0x800704cf 不能访问网络位置(win7 访问不了局域网电脑) .
查看>>
Android版SDK与admob管理平台集成教程
查看>>
六、安装laravel5.1
查看>>
华为交换机批量加入 Vlan 方法
查看>>
async 与 await 线程调用顺序
查看>>
马的种类(十四)
查看>>
路由、交换如何Telnet远程配置。
查看>>
Linux文本查看命令之uniq
查看>>
三大闪存芯片的类型比较TLC/MLC/SLC(转载)
查看>>
面试题
查看>>