Câu trả lời:
Danh sách đầy đủ các readyState
giá trị là:
State Description
0 The request is not initialized
1 The request has been set up
2 The request has been sent
3 The request is in process
4 The request is complete
(từ https://www.w3schools.com/js/js_ajax_http_response.asp )
Trong thực tế, bạn hầu như không bao giờ sử dụng bất kỳ cái nào trong số chúng ngoại trừ 4 cái.
Một số triển khai XMLHttpRequest có thể cho phép bạn xem các phản hồi đã nhận được một phần vào responseText
thời điểm nào readyState==3
, nhưng điều này không được hỗ trợ phổ biến và không nên dựa vào.
câu trả lời của kieron chứa w3schools ref. mà không ai dựa vào, câu trả lời của bobince đưa ra liên kết, thực sự cho biết việc triển khai bản địa của IE,
vì vậy đây là tài liệu gốc được trích dẫn để hiểu đúng những gì readystate đại diện:
Đối tượng XMLHttpRequest có thể ở một số trạng thái. Thuộc tính readyState phải trả về trạng thái hiện tại, phải là một trong các giá trị sau:
UNSENT (giá trị số 0)
Đối tượng đã được xây dựng.OPENED (giá trị số 1)
Phương thức open () đã được gọi thành công. Trong trạng thái này, tiêu đề yêu cầu có thể được đặt bằng cách sử dụng setRequestHeader () và yêu cầu có thể được thực hiện bằng phương thức send ().HEADERS_RECEIVED (giá trị số 2)
Tất cả các chuyển hướng (nếu có) đã được tuân theo và tất cả các tiêu đề HTTP của phản hồi cuối cùng đã được nhận. Một số thành viên phản hồi của đối tượng hiện đã có sẵn.LOADING (giá trị số 3)
Đang nhận phần thân thực thể phản hồi.XONG (giá trị số 4)
Quá trình truyền dữ liệu đã hoàn tất hoặc đã xảy ra sự cố trong quá trình truyền (ví dụ: chuyển hướng vô hạn).
Vui lòng đọc ở đây: W3C Giải thích về ReadyState
0
, 1
Và 2
chỉ theo dõi có bao nhiêu trong những phương pháp cần thiết để thực hiện một yêu cầu mà bạn đã gọi cho đến nay.
3
cho bạn biết rằng phản hồi của máy chủ đã bắt đầu đến. Nhưng khi bạn đang sử dụng XMLHttpRequest
đối tượng từ một trang web, bạn hầu như không thể làm gì (*) với thông tin đó, vì bạn không có quyền truy cập vào các thuộc tính mở rộng cho phép bạn để đọc dữ liệu từng phần.
readyState 4
là cái duy nhất có ý nghĩa.
(*: về cách sử dụng có thể hình dung duy nhất mà tôi có thể nghĩ đến để kiểm tra readyState 3
là nó báo hiệu một số dạng sống ở cuối máy chủ, vì vậy bạn có thể tăng khoảng thời gian chờ phản hồi đầy đủ khi nhận được.)
onreadystatechange Lưu trữ một hàm (hoặc tên của một hàm) để được gọi tự động mỗi khi thuộc tính readyState thay đổi readyState Giữ trạng thái của XMLHttpRequest. Các thay đổi từ 0 thành 4:
0: yêu cầu không được khởi tạo
1: kết nối máy chủ được thiết lập
2: nhận được yêu cầu
3: yêu cầu xử lý
4: yêu cầu hoàn thành và phản hồi đã sẵn sàng
trạng thái 200: "OK"
Lôi 404 Không Tim Được Trang
(Từ https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState)