XMLHttpRequest: thuộc tính upload

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Note: This feature is available in Web Workers, except for Service Workers.

Thuộc tính upload XMLHttpRequest trả về một đối tượng XMLHttpRequestUpload có thể được quan sát để theo dõi tiến trình tải lên.

Đây là một đối tượng mờ, nhưng vì nó cũng là một XMLHttpRequestEventTarget, các trình lắng nghe sự kiện có thể được gắn vào để theo dõi quá trình của nó.

Note: Việc gắn các trình lắng nghe sự kiện vào đối tượng này ngăn yêu cầu trở thành "yêu cầu đơn giản" và sẽ gây ra một yêu cầu preflight được phát hành nếu xuyên nguồn gốc; xem CORS. Vì lý do này, các trình lắng nghe sự kiện cần được đăng ký trước khi gọi send() hoặc các sự kiện upload sẽ không được dispatch.

Note: Đặc tả kỹ thuật cũng có vẻ chỉ ra rằng các trình lắng nghe sự kiện nên được gắn sau open(). Tuy nhiên, các trình duyệt có lỗi về vấn đề này, và thường cần các trình lắng nghe được đăng ký trước open() để hoạt động.

Các sự kiện sau có thể được kích hoạt trên một đối tượng upload và được sử dụng để theo dõi quá trình tải lên:

Sự kiện Mô tả
loadstart Quá trình tải lên đã bắt đầu.
progress Được phân phối định kỳ để cho biết lượng tiến trình đã đạt được cho đến nay.
abort Hoạt động tải lên đã bị hủy bỏ.
error Quá trình tải lên thất bại do một lỗi.
load Quá trình tải lên hoàn tất thành công.
timeout Quá trình tải lên đã hết thời gian vì không có phản hồi trong khoảng thời gian được chỉ định bởi XMLHttpRequest.timeout.
loadend Quá trình tải lên đã kết thúc. Sự kiện này không phân biệt giữa thành công hay thất bại, và được gửi vào cuối quá trình tải lên bất kể kết quả. Trước sự kiện này, một trong các sự kiện load, error, abort, hoặc timeout sẽ đã được phân phối để cho biết lý do kết thúc tải lên.