XMLHttpRequest: thuộc tính readyState

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 XMLHttpRequest.readyState trả về trạng thái mà một client XMLHttpRequest đang ở. Một client XHR tồn tại trong một trong các trạng thái sau:

Giá trị Trạng thái Mô tả
0 UNSENT Client đã được tạo. Phương thức open() chưa được gọi.
1 OPENED Phương thức open() đã được gọi.
2 HEADERS_RECEIVED Phương thức send() đã được gọi, tiêu đề và trạng thái đã sẵn sàng.
3 LOADING Đang tải xuống; responseText chứa dữ liệu một phần.
4 DONE Hoạt động đã hoàn tất.
UNSENT

Client XMLHttpRequest đã được tạo, nhưng phương thức open() chưa được gọi.

OPENED

Phương thức open() đã được gọi. Trong trạng thái này, các tiêu đề yêu cầu có thể được thiết lập bằng phương thức setRequestHeader() và phương thức send() có thể được gọi để bắt đầu quá trình tải.

HEADERS_RECEIVED

Phương thức send() đã được gọi, tất cả các chuyển hướng (nếu có) đã được theo dõi và các tiêu đề phản hồi đã được nhận.

LOADING

Phần thân phản hồi đang được nhận. Nếu responseType là "text" hoặc chuỗi rỗng, responseText sẽ chứa văn bản phản hồi một phần khi đang tải.

DONE

Hoạt động tải đã hoàn tất. Điều này có thể có nghĩa là quá trình truyền dữ liệu đã hoàn tất thành công hoặc thất bại.

Ví dụ

js
const xhr = new XMLHttpRequest();
console.log("UNSENT", xhr.readyState); // readyState sẽ là 0

xhr.open("GET", "/api", true);
console.log("OPENED", xhr.readyState); // readyState sẽ là 1

xhr.onprogress = () => {
  console.log("LOADING", xhr.readyState); // readyState sẽ là 3
};

xhr.onload = () => {
  console.log("DONE", xhr.readyState); // readyState sẽ là 4
};

xhr.send(null);

Các đặc tả kỹ thuật

Thông số kỹ thuật
XMLHttpRequest
# states

Tương thích trình duyệt