本文介绍: XMLHttpRequest.abort() 方法用于终止 XMLHttpRequest`对象的请求,该方法没有参数,也没有返回值。在axiso的0.22.0版本开始,需要使用浏览器原生的AbortController来终止请求,是目前推荐用的方法。在axiso的0.22.0之前的版本,需要使用取消令牌cancel token来终止请求,不过该API从0.22.0开始被弃用,目前已不建议再使用。
一、原生ajax终止请求
1、abort()
XMLHttpRequest.abort()
方法用于终止 XMLHttpRequest
对象的请求,该方法没有参数,也没有返回值。当调用该方法时,如果对应 XMLHttpRequest
对象的请求已经被发送并且正在处理中,则会中止该请求;如果请求已经完成(即已经接收到完整的响应),则不会执行任何操作。而且调用该方法后,还会触发 XMLHttpRequest
对象的abort
事件,我们可以在该事件的处理函数中执行后续相关逻辑代码,例如清除请求相关数据等等。
当一个请求被终止后,该请求的readyState
将会变为0
,并且status
属性也会变为0
。
案例代码:
执行结果:
二、axios终止请求
1、AbortController(新版本)
在axiso
的0.22.0
版本开始,需要使用浏览器原生的AbortController
来终止请求,是目前推荐用的方法。当使用该方法终止请求时,如果对应请求已经被发送并且正在处理中,则会中止该请求;如果请求已经完成(即已经接收到完整的响应),则不会执行任何操作。
我们想监听到终止请求的操作,并进行后续处理,有两种方法:① 使用AbortController
提供的onabort
事件,通过监听该事件,并绑定事件处理函数,在函数中进行后续处理。② 使用try..catch
,终止请求之后,会触发catch
,在catch
中进行后续处理。如果同时使用onabort
事件和try..catch
,则会先触发onabort
事件,再触发try..catch
。
案例代码:
执行结果:
2、CancelToken(旧版本)
案例代码:
执行结果:
三、参考资料
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。