JavaScript怎么取消请求

取消 XMLHttpRequest 请求

当请求已经发送了,可以使用 XMLHttpRequest.abort() 方法取消发送,代码示例如下:

const xhr = new XMLHttpRequest();xhr.open('GET', '<http://127.0.0.1:3000/api/get>', true);xhr.send();setTimeout(() => {	 xhr.abort();}, 1000);

取消请求,readyState 会变成 XMLHttpRequest.UNSENT(0);请求的 xhr.status 会被设为 0 ;

不如在 Chrome DevTools Network 中,看看正常请求和取消请求的对比图:

JavaScript怎么取消请求

取消 Fetch 请求

取消 Fetch 请求,需要用到 AbortController API。我们可以构造一个 controller 实例:const controller = new AbortController() , controller 它有一个只读属性 AbortController.signal,可以作为参数传入到 fetch 中,用于将控制器与获取请求相关联;

代码示例如下:

const controller = new AbortController();void (async function () {    const response = await fetch('<http://127.0.0.1:3000/api/get>', {        signal: controller.signal,    });    const data = await response.json();})();setTimeout(() => {    controller.abort();}, 1000);

浏览器控制台对比图:

JavaScript怎么取消请求

我们其实可以在 controller.abort() 传入“取消请求的原因”参数,然后进行 try…catch 捕获

JavaScript怎么取消请求

取消 aixos 请求

axios 同样支持 AbortController

const controller = new AbortController();const API_URL = '<http://127.0.0.1:3000/api/get>';void (async function () {    const response = await axios.get(API_URL, {        signal: controller.signal,    });    const { data } = response;})();setTimeout(() => {    controller.abort();}, 1000);

控制台截图:

JavaScript怎么取消请求

错误捕获:

JavaScript怎么取消请求

注意:axios 之前用于取消请求的 CancelToken 方法已经被弃用

关于“JavaScript怎么取消请求”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“JavaScript怎么取消请求”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

文章标题:JavaScript怎么取消请求,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/25407

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云的头像亿速云认证作者
上一篇 2022年9月15日 下午11:17
下一篇 2022年9月15日

相关推荐

  • windows声卡驱动被卸载了如何恢复

    声卡驱动被卸载了恢复方法: 方法一: 1、现在的系统都自带自动安装驱动的功能。 2、只要我们连接了网络,那么重启电脑就可以恢复声卡驱动了。 3、如果是耳机或音响等外接声音设备驱动,可以尝试拔出连接线重新连接即可恢复。 方法二: 1、如果电脑无法联网,那么可以尝试手动恢复。 2、右键开始菜单,打开“设…

    2022年9月21日
    79100
  • daisyUI怎么解决TailwindCSS堆砌class问题

    daisyUI概述 daisyUI是一个可定制的TailwindCSS的组件库,目前(发文日期)在GitHub中已经有12.8k的star数量。 它与现在常用的ElementUI或者AntDesign不同,它提供了一些类名,类似于Bootstrap,想要拿来即用的组件需要自己进行封装。 daisyU…

    2022年8月30日
    1.3K00
  • coreldraw如何裁剪图片

    coreldraw裁剪图片的方法 1、打开软件,导入一张图片。 2、在页面左侧找到裁剪工具点击。 3、在图片上框选出你要裁剪的区域。 4、框选好之后,双击鼠标左键就成功裁好了。 以上就是关于“coreldraw如何裁剪图片”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若…

    2022年9月26日
    72200
  • 如何像专业人士一样举办“有效会议”?

    有效会议不仅仅是设定议程并按时开始的问题,这篇文章我们要说的是如何像专业人士一样举办真正的“有效会议”。 想要举办一场有效会议,你要做的可不止告知会议议程和强调按时召开这些基本事项(虽然这些确实也很重要)。有效会议的真正关键是要以人性化的方式来组织和运行,而不是像机器一样流程化的来执行。 我们大多数…

    2022年3月20日
    60100
  • 400服务器是什么错

    400服务器错误指的是客户端发送到服务器的请求存在语法错误,导致服务器无法理解并处理该请求。出现这一问题可能有多种原因,包括:1、请求中有不合法的语法;2、请求参数错误;3、URL编码不正确;4、请求消息过大。其中,请求参数错误是比较常见的一个原因,它可能是指发送到服务器的查询字符串或表单数据中包含…

    2024年4月23日
    3300
  • steam人机身份验证captcha无效如何解决

    方法一: 1、使用浏览器打开steam。 2、建议使用谷歌浏览器。 3、在谷歌浏览器中就能通过人机验证了。 方法二: 1、如果在浏览器中也无法解决。 2、可以先将右上角的”语言“改为“英语”再试试看。 方法三: 1、如果还是不行,那么打开防火墙,点击“启用或关闭windows…

    2022年8月30日
    85300
  • win7如何清理微信和qq缓存

    win7清理微信和qq缓存的方法 微信清理: 1、打开微信,点击左侧下方三条横杠,打开后点击“设置” 2、 点击“通用设置” 3、点击右侧的“存储空间管理” 4、找到缓存这里,点击对应的管理和清理就可以了。 QQ缓存清理: 1、打开QQ主面板,点击左下方三条杠,点击“设置” 2、点击左边的“文件管理…

    2022年9月24日
    58400
  • dint数据类型的含义是什么

    dint是带符号位的32位整数类型;dint的表示方法及范围是“L#-2147483648~L#+2147483647”,定义为双整数或长整数,字节是电脑里的数据量单位,在计算机中,数据只用0和1这种表现形式。 本教程操作环境:windows10系统、DELL G3电脑。 dint是什么数据类型 D…

    2022年9月6日
    1.8K00
  • 升级服务器什么意思

    升级服务器通常意味着1、提高硬件性能、2、更新软件和操作系统、3、扩展存储容量、4、增强安全功能。提高硬件性能包括增加处理器的核心数、频率或升级到更高效的型号,以便应对增长的数据处理需求。此外,增加内存可以显著提升多任务处理和大型应用程序的运行效率。提升内存通常是应对性能瓶颈的首要解决方案,因为它直…

    2024年4月23日
    3800
  • Sql注入bypass的示例分析

    waf是如何防御的 waf是通过使用一组规则来区分正常请求和恶意请求的。例如:安全狗、云锁、D盾等。 绕过:既然是存在规则匹配,那么就可以想方法绕过规则匹配。比如常见的黑名单限制,黑名单模型使用预设 一、sql注入bypass 环境搭建 win7 phpstdy(mysql:5.7.0 php:5.…

    2022年9月6日
    1.2K00
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部