【JavaScript】终止网络请求

AbortController.abort()

通过 AbortController 和 AbortSignal 来中⽌⽹络请求。

使⽤ AbortController 创建⼀个新的 AbortController 对象,然后使⽤它的 abort() ⽅法来中⽌请求。在创建请求时,将 AbortController.signal 分配给请求的 signal 属性,以便在调⽤ abort() ⽅法时取消请求。

js 复制代码
const controller = new AbortController();
const signal = controller.signal;
fetch(url, { signal })
  .then((response) => {
    // Handle the response
  })
  .catch((error) => {
    if (error.name === "AbortError") {
      console.log("Request was cancelled");
    } else {
      console.log("Request failed:", error);
    }
  });
// To abort the request, call the following:
controller.abort();

abort() ⽅法会在 DOM 请求完成之前中⽌它。它能够中⽌ fetch 请求、各种响应主体或者流的消耗。

XMLHttpRequest.abort()

js 复制代码
const xhr = new XMLHttpRequest()
xhr.open(method,url)
xhr.send()
// 然后在某个时间点调⽤ abort() ⽅法
xhr.abort();

当⼀个请求被终⽌,它的 readyState 将被置为 XMLHttpRequest.UNSENT (0),并且请求的

status 置为 0。

CancelToken

js 复制代码
const source = axios.CancelToken.source();
 axios.get('/api/data', {
  cancelToken: source.token
 }).then(response => {
  // 处理响应
}).catch(error => {
  if (axios.isCancel(error)) {
    console.log('请求已被取消:', error.message);
  } else {
    console.log('请求出错:', error.message);
  }
 });
 source.cancel('请求已被⽤户取消');
相关推荐
前端菜鸟日常2 分钟前
vue2和vue3的按需引入的详细对比通俗易懂
javascript·vue.js·ecmascript
被程序耽误的胡先生3 分钟前
java中 kafka简单应用
java·开发语言·kafka
刀客1234 分钟前
python小项目编程-中级(1、图像处理)
开发语言·图像处理·python
卷卷的小趴菜学编程8 分钟前
c++之多态
c语言·开发语言·c++·面试·visual studio code
AC-PEACE17 分钟前
Vue 中 MVVM、MVC 和 MVP 模式的区别
前端·vue.js·mvc
播播资源20 分钟前
ChatGPT付费创作系统V3.1.3独立版 WEB端+H5端+小程序端 (DeepSeek高级通道+推理输出格式)安装教程
前端·ai·chatgpt·ai作画·小程序·deepseek·deepseek-v3
冷琴199628 分钟前
基于Python+Vue开发的反诈视频宣传管理系统源代码
开发语言·vue.js·python
楠枬36 分钟前
网页五子棋——对战后端
java·开发语言·spring boot·websocket·spring
kyle~39 分钟前
thread---基本使用和常见错误
开发语言·c++·算法
zhrb1 小时前
打开Firefox自动打开hao360.hjttif.com标签解决方案
前端·firefox