1. readyState 值:0(UNSENT)
- 含义: 请求已创建,但尚未打开(open 方法尚未调用)。
- 对应事件: 无。
2. readyState 值:1(OPENED)
- 含义: 请求已打开(open 方法已调用),但尚未发送(send 方法尚未调用)。
- 对应事件: open 事件。
3. readyState 值:2(HEADERS_RECEIVED)
- 含义: 请求已接收到服务器的响应头(send 方法已调用)。
- 对应事件: loadstart 事件。
4. readyState 值:3(LOADING)
- 含义: 请求正在接收服务器的响应体(正在下载数据)。
- 对应事件: progress 事件。
5. readyState 值:4(DONE)
- 含义: 请求已完成,且响应数据已完全接收。
- 对应事件: load 事件。
通过检查 readyState 的值,可以在不同的请求阶段执行相应的操作。以下是一个简单的例子,演示如何使用 readyState 处理请求状态:
var xhr = new XMLHttpRequest();
// 设置回调函数,处理请求状态的变化
xhr.onreadystatechange = function() {
// 检查 readyState 的值
if (xhr.readyState === 4) {
// 请求已完成
if (xhr.status === 200) {
// 请求成功,处理响应数据
var responseData = JSON.parse(xhr.responseText);
console.log('Response Data:', responseData);
} else {
// 请求失败,处理错误信息
console.error('Request failed. Status:', xhr.status);
}
}
};
// 打开并发送请求
xhr.open('GET', 'https://jsonplaceholder.typicode.com/todos/1', true);
xhr.send();
在上述代码中,xhr.onreadystatechange 事件处理函数会在 readyState 的值发生变化时触发。当 readyState 的值为 4 时,表示请求已完成。然后,我们检查 xhr.status 来确定请求的成功或失败,并根据需要处理响应数据。
转载请注明出处:http://www.zyzy.cn/article/detail/13182/AJAX