XMLHttpRequest: upload 属性

基线 广泛可用

此功能已得到良好建立,并且可在许多设备和浏览器版本中使用。它自以下时间起在浏览器中可用: 2015 年 7 月.

注意:此功能在Web Workers中可用,但Service Workers除外。

XMLHttpRequest upload 属性返回一个XMLHttpRequestUpload对象,该对象可以被观察以监视上传的进度。

它是一个不透明的对象,但因为它也是一个XMLHttpRequestEventTarget,所以可以附加事件侦听器来跟踪其过程。

注意:附加到此对象的事件侦听器会阻止请求成为“简单请求”,并且如果跨源,将导致发出预检请求;请参阅CORS。因此,需要在调用send()之前注册事件侦听器,否则不会调度上传事件。

注意:规范似乎还表明事件侦听器应该在open()之后附加。但是,浏览器在这方面存在错误,并且通常需要在open()之前注册侦听器才能正常工作。

以下事件可以在上传对象上触发,并用于监视上传

事件 描述
loadstart 上传已开始。
progress 定期传递以指示迄今为止取得的进度。
abort 上传操作已中止。
error 由于错误导致上传失败。
load 上传已成功完成。
timeout 上传超时,因为在XMLHttpRequest.timeout指定的时间间隔内未收到回复。
loadend 上传已完成。此事件不区分成功或失败,无论结果如何,都会在上传结束时发送。在此事件之前,loaderroraborttimeout之一将已传递以指示上传结束的原因。

规范

规范
XMLHttpRequest 标准
# the-upload-attribute

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅