AJAX请求状态主要通过XMLHttpRequest对象的readyState
属性来表示,它有以下几种状态:
- 0 (UNSENT): XMLHttpRequest 对象已创建,但
open()
方法尚未被调用。 - 1 (OPENED):
open()
方法已被调用。 - 2 (HEADERS_RECEIVED):
send()
方法已被调用,并且头部和状态码已收到。 - 3 (LOADING): 正在下载响应体。换句话说,正在接收数据。
- 4 (DONE): 操作已完成。这意味着数据传输完成或操作被取消。
除了readyState
,你还需要结合status
属性(HTTP状态码)来判断请求的最终结果。例如,即使readyState
为4,status
也可能是404(Not Found)或500(Internal Server Error),表示请求最终失败。
所以,完整的判断逻辑通常如下:
const xhr = new XMLHttpRequest();
xhr.open('GET', 'your-url');
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) { // 请求完成
if (xhr.status >= 200 && xhr.status < 300) { // 成功状态码
// 请求成功,处理响应数据
console.log('Success:', xhr.responseText);
} else {
// 请求失败,处理错误
console.error('Error:', xhr.status, xhr.statusText);
}
}
};
xhr.send();
标签:status,状态,readyState,XMLHttpRequest,请求,xhr,ajax,哪几种
From: https://www.cnblogs.com/ai888/p/18573685