当前位置: 首页 > news >正文

解决AbortController中断请求无法再次请求

示例代码

express代码

const express = require('express')
const app = express()//导入cors跨域中间件
const cors = require('cors')
// 全局注册,加前缀
app.use(cors())app.get('/list', (req, res) => {// 直接返回对象console.log('接收到的参数是', req.query)//结束本次请求,设置响应体:返回给用户内容setTimeout(() => {res.send({ message: 'success', code: 2000, data: [{ name: '张三', age: 18 }] })}, 4000)
})app.post('/data', (req, res) => {setTimeout(() => {res.send({ message: 'success', code: 2000, data: [{ name: '张三666', age: 18 }] })}, 4000)
})app.listen('3000', () => {console.log('服务启动成功')
})

html代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><button onclick="sendGet()">get请求</button><button onclick="sendPost()">post请求</button><button onclick="cancel()">取消</button></body><script>// 初始化 controller 为 null,用来处理中止请求后无法再次发请求let controller = nullif (!controller) {function sendGet() {controller = new AbortController()fetch('http://localhost:3000/list?name=haha&age=19', {signal: controller.signal}).then((res) => {if (res.ok) {return res.json()}}).catch((err) => {console.log(err)})}function sendPost() {controller = new AbortController()fetch('http://localhost:3000/data', {method: 'POST',body: JSON.stringify(),headers: {'Content-Type': 'application/json'},signal: controller.signal}).then((res) => {console.log(res)})}}function cancel() {controller.abort() // 取消请求controller = ''}</script>
</html>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 招聘网站项目
  • Docker in Docker 实践 on mac
  • 跨越技术壁垒:EasyCVR为何选择支持FMP4格式,重塑视频汇聚平台标准
  • Jenkins+docker+springboot 一键自动部署项目步骤
  • docker-mysql容器数据卷挂载
  • 大端模式和小端模式
  • 对话万兴科技副总裁朱伟:2024年将迎来AI视频年
  • centos安装docker并配置加速器
  • LeetCode376 摆动序列
  • 《酒饮真经》第二部——劝酒十五式
  • 记录一下idea的一些使用技巧和遇到的异常(持续更新)
  • 199页Word智慧水务平台建设方案
  • 如何确定 npm 依赖需要的 Node.js 版本?
  • 黑马点评8——好友关注-SortedSet
  • spring入门(二)IOC入门案例和DI入门案例
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 2017 年终总结 —— 在路上
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • Docker入门(二) - Dockerfile
  • es6--symbol
  • java 多线程基础, 我觉得还是有必要看看的
  • leetcode46 Permutation 排列组合
  • Nacos系列:Nacos的Java SDK使用
  • nginx 配置多 域名 + 多 https
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • opencv python Meanshift 和 Camshift
  • rc-form之最单纯情况
  • WePY 在小程序性能调优上做出的探究
  • Zsh 开发指南(第十四篇 文件读写)
  • 搞机器学习要哪些技能
  • 工作中总结前端开发流程--vue项目
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 人脸识别最新开发经验demo
  • 网页视频流m3u8/ts视频下载
  • 一、python与pycharm的安装
  • 自动记录MySQL慢查询快照脚本
  • 《天龙八部3D》Unity技术方案揭秘
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​configparser --- 配置文件解析器​
  • ​字​节​一​面​
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • # 数论-逆元
  • #{}和${}的区别?
  • #ifdef 的技巧用法
  • #VERDI# 关于如何查看FSM状态机的方法
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (12)Hive调优——count distinct去重优化
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (二)Eureka服务搭建,服务注册,服务发现
  • (六)激光线扫描-三维重建
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (转)fock函数详解
  • (转)利用ant在Mac 下自动化打包签名Android程序