在前端开发中,我们经常会使用XMLHttpRequest对象(也称为XHR)来发送异步HTTP请求。当我们调用XHR对象的send方法后,该方法会返回一个XMLHttpRequest.readyState属性值,该值表示请求的状态。
XMLHttpRequest.readyState的取值
XMLHttpRequest.readyState共有5个可能的取值:
- 0:请求未初始化,即尚未调用open()方法。
- 1:服务器连接已建立,但是尚未发送请求。open()方法已经调用了。
- 2:请求已接收,但是尚未开始处理。send()方法已经调用了,并且头部和状态已经可获得。
- 3:请求处理中,通常响应体部分已经被接收。
- 4:请求已完成,且响应已就绪。此时可以获取响应数据。
其中,XMLHttpRequest.readyState等于4时代表请求已完成,这是我们最常使用的状态。
XMLHttpRequest.readyState等于4时可以做什么?
当我们的请求状态变成XMLHttpRequest.readyState等于4时,我们可以通过XMLHttpRequest对象的status和responseText属性获取相应的状态码和响应内容。
下面是一个简单的示例,展示如何监听XMLHttpRequest对象的readyState属性并处理它的变化:
----- --- - --- ----------------- ---------------------- - -------- -- - -- --------------- -- - -- ---------- -- ---- - ------------------------------ - -- --------------- --------------------------------------------- ------ -----------
在上面的代码中,我们创建了一个XMLHttpRequest对象,并将其的onreadystatechange事件处理程序设置为一个匿名函数。当readyState的值变成4时,我们检查响应的状态码是否为200,如果是,则可以使用xhr.responseText获取响应内容。
总结
XMLHttpRequest.readyState等于4时代表请求已完成,此时可以通过XMLHttpRequest对象获取响应数据。在实际开发中,我们可以根据这个状态来判断请求是否成功,并采取相应的处理措施。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/10964