为什么axios请求接口会发起两次请求

为什么axios请求接口会发起两次请求,第1张

如果只是普通的 ajax 请求,也不会发起这个请求,只有当 ajax 请求绑定了 upload 的事件并且跨域的时候,就会自动发起这个请求。
这样就明了了,就是我们有upload事件绑定(一般都是本地调试,所以会有跨域),我仔细看了下axios文档,发现config配置文件中有两个参数
// onUploadProgress: function(progressEvent) {
// // Do whatever you want with the native progress event
// },
// onDownloadProgress: function(progressEvent) {
// // Do whatever you want with the native progress event
// },
分别处理上传和下载事件,也就是这里绑定了upload事件,所以每次请求都会有个option请求。
解决方案很简单,直接注释掉就好了,当然如果开发的工程上线使用跟请求的接口是同一个域名下自然不会两次请求。

你好,很高兴回答你的问题。
这种问题,有相对成熟的机制来解决。这种机制叫分布式锁。
其实和单机部署时的同步锁类似,单机部署是一个线程获取到锁之后,另一个线程因为获取不到锁就不能和上一个线程同时执行。
分布式锁道理类似,这个锁一般会由一个独立于部署的多个服务实例之外的系统来解决。比如redis,redis有个方法是setNx(key)这个方法是原子性的,如果redis中不存在key对应的数据,则会存入,相当于获取到锁,如果redis中已经存在key对应的数据,说明锁已经被占用,就会返回false。
放服务实例处理完这个业务功能后可以删除掉redis中的数据,相当于适当锁。
为了防止因意外情况导致不会执行释放锁的 *** 作,可以给存入redis的数据设置一个过期时间,如果时间到了,数据还没有被删除,redis会自行删除这条数据。
如果有帮助到你,请点击采纳。

URL是Uniform Resource Location的缩写,译为“统一资源定位符”。
通俗地说,URL是Internet上用来描述信息资源的字符串,主要用在各种>

JAVA代码发送>

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10270648.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存