ajax的请求状态有哪几种?

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();

posted @ 2024-11-28 10:04  王铁柱6  阅读(53)  评论(0)    收藏  举报