在使用 XMLHttpRequest(XHR)对象进行 AJAX 请求时,readyState 是一个表示请求状态的属性。readyState 的值在整个请求过程中会不断变化,通过检查这个值,可以了解请求的当前状态。以下是 readyState 的几个可能的值和相应的含义:

1. 0 (UNSENT): 请求未初始化。在这个状态下,调用 open() 方法后,但是尚未调用 send() 方法。

2. 1 (OPENED): 请求已初始化。在这个状态下,已经调用了 open() 方法,但是尚未调用 send() 方法。

3. 2 (HEADERS_RECEIVED): 已接收到响应头。在这个状态下,已经调用了 send() 方法,服务器已经返回了响应头。

4. 3 (LOADING): 正在接收响应体。在这个状态下,已经接收到部分响应体,但是还没有完全接收。

5. 4 (DONE): 请求完成。在这个状态下,整个请求过程已经完成,包括接收到完整的响应体。

下面是一个使用 readyState 的简单示例:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://example.com/data', true);

xhr.onreadystatechange = function() {
    console.log('ReadyState:', xhr.readyState);

    if (xhr.readyState === 4) {
        if (xhr.status === 200) {
            // 处理响应
            console.log('Response:', xhr.responseText);
        } else {
            // 处理错误
            console.error('Request failed with status:', xhr.status);
        }
    }
};

xhr.send();

在这个例子中,我们在 onreadystatechange 事件处理程序中输出了 readyState 的值。你可以通过检查这个值来确定请求的当前状态,并根据需要执行相应的操作。通常,我们在 readyState 变为 4 时处理响应。


转载请注明出处:http://www.zyzy.cn/article/detail/4592/Ajax