为什么会有取消请求-文件上传

比如有这样的场景,在一个弹窗中有文件上传。
当用户进行文件上传的时候,发现不想进行文件上传了,又点击了弹窗中的取消。
那么是不是应该去取消本次的上传操作,此时就需要使用取消xiaos请求了。

使用axios内部提供的 CancelToken方法来取消请求

<template>
<div>
<button @click="sendAxios">发送axios</button>
<button @click="cancelHandert">取消请求</button>
<button @click="sendAxios2">发送axios@2</button>
</div>
</template>
<script lang="ts" setup>
import axios from 'axios'
function sendAxios() {
SendGiveServe()
}
let CancelToken;
let source:any;
function SendGiveServe() {
CancelToken = axios.CancelToken
source = CancelToken.source()
axios.get('https://xxx.com/list',{name:'张三'}, {
cancelToken: source.token
}).then(function (response) {
console.log('返回来的数据1', response)
}).catch(thrown => {
if (axios.isCancel(thrown)) {
console.log('请求已经取消了==>', thrown.message);
} else {
// 处理错误
}
});
} function cancelHandert() {
source&&source.cancel('取消请求1') //取消请求,参数可选
} function sendAxios2() {
axios.get('https://xxx.com/list').then(function (response) {
console.log('返回来的数据sendAxios2', response)
})
}
</script>

通过调用 CancelToken的构造函数来创建 CancelToKen
<template>
<div>
<button @click="sendAxios">发送axios1</button>
<button @click="cancelHandert">取消请求axios1</button>
<button @click="sendAxios2">发送axios@2</button>
</div>
</template>
<script lang="ts" setup>
import axios from 'axios' let CancelToken; //取消请求的token令牌
let cancel:any; //取消请求的方法
// 发送请求
function sendAxios() {
CancelToken = axios.CancelToken
axios.get('https://edu.newsight.cn/wxList.php', {
cancelToken: new CancelToken(function excutor(c) {
cancel = c;
})
}).then((res) => {
console.log('axios1发回来的数据',res)
}).catch((thrown) => {
if (axios.isCancel(thrown)) {
console.log('请求已经取消了==>', thrown.message);
} else {
// 处理错误
}
});
}
// 取消请求
function cancelHandert() {
cancel&&cancel();
} function sendAxios2() {
axios.get('https://edu.newsight.cn/wxList.php').then(function (response) {
console.log('返回来的数据sendAxios2', response)
})
}
</script>

取消axios请求的特别说明

虽然我们点击取消请求了。后端还是会一一收到所有的请求。
因此该查库的查库,该创建的创建,还是会操作对应的业务逻辑。
上面这一段话的来源:链接:https://juejin.cn/post/6931588940076072968
有的小伙伴可能就会说:那取消请求有什么意义呢?
其实他的作用主要是:减少数据的重复渲染。对前端有用,对于后端是没有什么用的。
回到最初:文件上传的场景,虽然前端取消了,但是后端仍然会读取这个文件上传的操作。
听到我说这一段话:也许你会崩溃。但是确实这这样的。本宝宝我也很难受

axios取消请求的更多相关文章

  1. axios 取消请求的方法

    开发中遇到需要取消请求的功能,,点击终止查询可以取消开始查询请求,再次点击开始查询又可以进行查询. 解决方法:axios官方文档上的CancelToken,一开始用了这个api后,可以成功取消请求,但 ...

  2. axios 取消请求

    解决思路 在发送第二次请求的时候如果第一次请求还未返回,则取消第一次请求,以保证后发送的请求返回的数据不会被先发送的请求覆盖. axios官方文档取消请求说明 方法一: const CancelTok ...

  3. axios 取消请求 (如:用户登录失效,阻止其他请求)

    const CancelToken = axios.CancelToken; const source = CancelToken.source(); axios.interceptors.reque ...

  4. axios取消接口请求

    axios取消请求 这里就是分析一下接口请求需要被取消时的一些操作 因为我是用vue写的项目,所以标配用的是axios,怎么在axios中取消已经发送的请求呢? 1.在这之前我们还是先介绍一下原生js ...

  5. jq和axios的取消请求

    场景: 分页: 每次点击分页会发送请求,如果上一次请求还未获取到,下一次请求已经开始且先一步获取到,那么数据上会出现问题. 快速点击会发送多次请求,多次点击的时候一般的做法我们会定义一个flag,此时 ...

  6. Axios 取消 Ajax 请求

    Axios 取消 Ajax 请求 Axios XMLHttpRequest https://caniuse.com/?search=XMLHttpRequest https://developer.m ...

  7. 学习axios必知必会(2)~axios基本使用、使用axios前必知细节、axios和实例对象区别、拦截器、取消请求

    一.axios的基本使用: ✿ 使用axios前必知细节: 1.axios 函数对象(可以作为axios(config)函数使用去发送请求,也可以作为对象调用方法axios.request(confi ...

  8. axios取消重复请求与更新token并续订上次请求

    一.问题引入 当用户发起一个请求时,判断token是否已过期,若已过期则先调refreshToken接口,拿到新的token后再继续执行之前的请求. 难点:当同时发起多个请求,token 过期会调用多 ...

  9. vue2.0项目实战(3)使用axios发送请求

    在Vue1.0的时候有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource. 关于为什么放弃推荐? -> 尤 ...

  10. Vue笔记:使用 axios 发送请求

    在Vue1.0的时候有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource. 关于为什么放弃推荐? -> 尤 ...

随机推荐

  1. YoloV5实战:手把手教物体检测

    摘要:​YOLOv5并不是一个单独的模型,而是一个模型家族,包括了YOLOv5s.YOLOv5m.YOLO... 本文分享自华为云社区<YoloV5实战:手把手教物体检测--YoloV5> ...

  2. Mac 播放 swf Flash文件

    Flash已不再支持,swf 文件彻底打不开了(一些教程),通过PD虚拟,安装 windows 操作系统在里在装了 flash 播放器使用了一段时间,始终不方便.于是找到了如下方法 首先安装:Adob ...

  3. Spring Cloud 和 Dubbo 哪个会被淘汰?

    今天在知乎上看到了这样一个问题:Spring Cloud 和 Dubbo哪个会被淘汰?看了几个回答,都觉得不在点子上,所以要么就干脆写篇小文瞎逼叨一下. 简单说说个人观点 我认为这两个框架大概率会长期 ...

  4. 这应该是java最好用的orm之一了

    这应该是java最好用的orm之一了 说起orm大家肯定都不会陌生,作者是一个.net菜鸟.并且是在.net繁荣的orm圈子下成长的,所以这次给大家带来的是媲美efcore,freesql,sqlsu ...

  5. 从头到尾创建一个vue项目

  6. [译] kubernetes:kube-scheduler 调度器代码结构概述

    本文翻译自 https://github.com/kubernetes/community/blob/master/contributors/devel/sig-scheduling/scheduli ...

  7. P1047 [NOIP2005 普及组] 校门外的树

    1.题目介绍 [NOIP2005 普及组] 校门外的树 题目描述 某校大门外长度为 \(l\) 的马路上有一排树,每两棵相邻的树之间的间隔都是 \(1\) 米.我们可以把马路看成一个数轴,马路的一端在 ...

  8. 用CI/CD工具Vela部署Elasticsearch + C# 如何使用

    Vela 除了可以帮我们编译.部署程序,利用它的docker部署功能,也能用来部署其他线上的docker镜像,例如部署RabbitMQ.PostgreSql.Elasticsearch等等,便于集中管 ...

  9. html监听标签的resize

    <html> <body> <div id="div1" style="width:100%;height:100%;"> ...

  10. Oracle19c 多字符集支持的PDB

    Oracle19c 多字符集支持的PDB 背景 想在一个数据库里面支持多种字符集 突然发现Oracle12c开始已经可以实现一个CDB下面可以有多个不同字符集的PDB了 所以想着今天验证一下. 环境信 ...