怎样获取xhr的当前状态

一个XMLHttpRequets实例从创建到发起请求再到获取数据, 期间会有一些中间状态, 这些状态是必要的, 我们可以通过判断这些状态值来进行不同的动作.

xhr中获取请求状态的属性是: xhr.readyState 它有五种状态可供返回: 

0: xhr实例已经创建, 但xhr.open()方法尚未调用;

1: xhr.open()已调用, 但xhr.send()尚未调用, 这个阶段可以使用xhr.setRequestHeader()方法设置HTTP请求头信息;

2: xhr.send()已调用, 并且服务器返回的头信息和状态码已收到;

3: 这个阶段是数据的下载阶段, 具体是否有数据, 需要使用xhr.responseType来作判断, 然后通过xhr.responseText进行获取;

4: 这个请求结束, 可能是请求成功或失败, 但服务器传给客户端的数据已经完全接收. 后续不再有新的状态

var xhr = new XMLHttpRequest();

if (xhr.readyState === 4) {
  // 请求结束,处理服务器返回的数据
} else {
  // 显示提示“加载中……”
}

注意: 每一次xhr.readyState值的变化, 都会触发readystatechange事件, 可以给这个事件添加监听函数做业务逻辑.

原文地址:https://www.cnblogs.com/aisowe/p/11553571.html