返回顶部
首页 > 资讯 > 精选 >使用Fly怎么拦截全局Ajax请求
  • 521
分享到

使用Fly怎么拦截全局Ajax请求

2023-06-08 06:06:22 521人浏览 薄情痞子
摘要

本篇文章给大家分享的是有关使用Fly怎么拦截全局ajax请求,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。原理无论你的应用是通过那个框架或库发起的 Ajax 请求,最终都会回归

本篇文章给大家分享的是有关使用Fly怎么拦截全局ajax请求,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

原理

无论你的应用是通过那个框架或库发起的 Ajax 请求,最终都会回归到 XMLHttpRequest 。 所以,拦截的本质就是替换浏览器原生的 XMLHttpRequest 。具体就是,在替换之前保存先保存 XMLHttpRequest,然后在请求过程中根据具体业务逻辑决定是否需要发起网络请求,如果需要,再创建真正的 XMLHttpRequest 实例。

Fly 拦截全局ajax

如果您还不了解 fly, 请参考其官网:https://wendux.GitHub.io/dist/#/doc/flyio/readme

我们知道,在 Fly 中,XMLHttpRequest 就是一个http engine。所以我们要拦截,只需要自定义一个engine替换掉全局的XMLHttpRequest 就行,而 Fly 提供了快速生成 engine 的工具,所以我们可以很方便实现拦截。

我们先看一个简单的例子,功能是输出每次网络请求 url 和 method。

实现

 var log = console.log;//切换fly engine为真正的XMLHttpRequestfly.engine = XMLHttpRequest;var engine = EngineWrapper(function (request, responseCallback) {  console.log(request.url, request.method)  //发起真正的ajax请求  fly.request(request.url, request.data, request)    .then(function (d) {      responseCallback({        statusCode: d.engine.status,        responseText: d.engine.responseText,        statusMessage: d.engine.statusText      })    })    .catch(function (err) {      responseCallback({        statusCode:err.status,        statusMessage:err.message      })    })})//覆盖默认XMLHttpRequest = engine;axiOS.post("../package.JSON").then(log)

我们用 axios 发起一个请求测试一下:

axios.post("../package.json").then(log)//控制台输出> http://localhost:63341/Fly/package.json POST> {data: {…}, status: 200, statusText: "OK", headers: {…}, config: {…}, …}

可以看到控制台中输出了请求的 url 和 method,我们的拦截成功了。而 第二行的结果对象是axios then打印出的。

因为 Fly支持切换engine, 我们可以直接先将 fly engine 切换为真正的 XMLHttpRequest ,然后再覆盖,这样fly中的网络请求都是通过真正的 XMLHttpRequest 发起的 (事实上, 浏览器环境下 fly 默认的 engine本就是 XMLHttpRequest,无需手动切换,此处为了清晰,故手动切换了一下)。fly 会根据request对象自动同步请求头。如果想阻止请求,直接在 adapter 中 return 即可。

其它拦截方法
github上的开源库 Ajax-hook 也可以拦截全局的的ajax请求,不同的是,它可以拦截ajax请求的每一步,每一个回调,不仅强大,而且也很轻量(1KB)。和上面通过 fly engine 拦截的方式相比 ,Ajax-hook的拦截粒度更细,但Ajax-hook由于使用了ES5的 getter、setter,所以不支持IE9以下的浏览器。

以上就是使用Fly怎么拦截全局Ajax请求,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。

--结束END--

本文标题: 使用Fly怎么拦截全局Ajax请求

本文链接: https://lsjlt.com/news/252322.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用Fly怎么拦截全局Ajax请求
    本篇文章给大家分享的是有关使用Fly怎么拦截全局Ajax请求,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。原理无论你的应用是通过那个框架或库发起的 Ajax 请求,最终都会回归...
    99+
    2023-06-08
  • java怎么拦截ajax请求
    这篇“java怎么拦截ajax请求”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java怎...
    99+
    2024-04-02
  • mpvue微信小程序中接口请求fly全局拦截的示例分析
    这篇文章主要介绍mpvue微信小程序中接口请求fly全局拦截的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!业务要求:  需要进入页面时就要游客登陆拿到token;  之后的...
    99+
    2024-04-02
  • react axios请求拦截怎么实现
    本教程操作环境:Windows7系统、react17.0.1版、Dell G3电脑。react axios请求拦截怎么实现react 封装axios请求拦截、响应拦截、封装post、get请求默认你已经创建好了一个react项目首先我们需要...
    99+
    2022-11-22
    axios React
  • Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
    0、Node环境下安装和使用Mock # 安装 npm install mockjs // 使用 Mock var Mock = require('mockjs') var data = Mo...
    99+
    2022-06-04
    环境 服务器 教程
  • JavaScript 中如何拦截全局 Fetch API 的请求和响应问题
    目录JavaScript Fetch API实现拦截对 Fetch 使用猴子补丁(monkey patching)请求拦截器响应拦截器错误处理Node.js使用 fetch-inte...
    99+
    2023-01-06
    js拦截全局Fetch API js拦截全局 js拦截全局请求和响应
  • Angular怎么对请求进行拦截封装
    这篇“Angular怎么对请求进行拦截封装”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“A...
    99+
    2024-04-02
  • vue怎么实现请求拦截白名单
    前言在使用 Vue 进行开发的过程中,我们会遇到需要对网络请求进行拦截的情况,并且还需要排除一些请求不受拦截,即白名单。这篇文章将介绍 Vue 请求拦截白名单实现的方法。正文在使用 Vue 进行开发时,我们通常会使用 axios 发送网络请...
    99+
    2023-05-14
  • vue中怎么实现一个路由拦截器和请求拦截器
    本篇文章给大家分享的是有关vue中怎么实现一个路由拦截器和请求拦截器,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。路由拦截器已路由为导向rou...
    99+
    2024-04-02
  • Spring Cloud gateway网关怎么拦截Post请求日志
    本篇内容主要讲解“Spring Cloud gateway网关怎么拦截Post请求日志”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring Cloud gateway网关怎么拦截Post请...
    99+
    2023-06-20
  • Angular怎么实现错误处理和请求拦截
    本篇内容主要讲解“Angular怎么实现错误处理和请求拦截”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Angular怎么实现错误处理和请求拦截”吧!基本使用用 Angular 提供的 Http...
    99+
    2023-07-04
  • 怎么使用JQuery接收AJAX请求
    本文小编为大家详细介绍“怎么使用JQuery接收AJAX请求”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用JQuery接收AJAX请求”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、用法JQuery提...
    99+
    2023-07-06
  • 使用Filter拦截器如何实现请求跨域转发
    目录Filter拦截器实现请求跨域转发在使用Filter实现转发后特做一次记录使用filter解决跨域在web.xml配置拦截器过滤器代码Filter拦截器实现请求跨域转发 因为公司...
    99+
    2024-04-02
  • SpringBoot如何使用Aspect切面拦截打印请求参数
    这篇文章主要介绍“SpringBoot如何使用Aspect切面拦截打印请求参数”,在日常操作中,相信很多人在SpringBoot如何使用Aspect切面拦截打印请求参数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-20
  • vue怎么使用axios发送ajax请求
    在vue中使用axios发送ajax请求的方法:1.新建vue.js项目;2.使用npm命令下载axios;3.使用import方法导入axios;4.执行代码发送ajax请求;具体步骤如下:首先,在vue-cli中创建一个vue.js项目...
    99+
    2024-04-02
  • vue中怎么利用axios实现一个登录请求拦截器
    vue中怎么利用axios实现一个登录请求拦截器,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.安装配置axioscnpm install ...
    99+
    2024-04-02
  • SpringMVC拦截器怎么使用
    今天小编给大家分享一下SpringMVC拦截器怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。SpringMVC 的拦...
    99+
    2023-07-05
  • mybatis拦截器怎么使用
    今天小编给大家分享一下mybatis拦截器怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。mybatis实战之拦截器在...
    99+
    2023-07-05
  • vue怎么使用vue-resource发送ajax请求
    在vue中使用vue-resource发送ajax请求的方法:1.新建vue.js项目;2.使用npm命令下载vue-resource;3.使用import方法导入vue-resource;4.执行代码发送ajax请求;具体步骤如下:首先,...
    99+
    2024-04-02
  • Jquery怎么使用AJAX方法请求数据
    本篇内容主要讲解“Jquery怎么使用AJAX方法请求数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Jquery怎么使用AJAX方法请求数据”吧!一、AJAX请求1、jQuery.ajax(...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作