java怎么拦截ajax请求

发布时间:2022-02-25 17:24:36 作者:iii
来源:亿速云 阅读:257

这篇“java怎么拦截ajax请求”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java怎么拦截ajax请求”文章吧。

  原理

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

  Fly 拦截全局ajax

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

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

  实现

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

  可以看到控制台中输出了请求的 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以下的浏览器。

以上就是关于“java怎么拦截ajax请求”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。

推荐阅读:
  1. Android Webview拦截ajax请求
  2. ajax请求

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java ajax

上一篇:怎么将JavaScript直接写在HTML文档

下一篇:JavaScript文件名的命名规定有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》