一个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事件, 可以给这个事件添加监听函数做业务逻辑.

最新文章

  1. discuz X3.1 关于分表 和 分表数据迁移
  2. java excle导出合计字段值
  3. MSDN论坛被垃圾信息刷爆了!!!
  4. [Xamarin] 製作Options Menu、Intent 呼叫網址和Market (转帖)
  5. php cli模式学习(PHP命令行模式)
  6. Python 通过print_lol将数据保存到文件中
  7. 【转】Qt多线程操作界面---在QThread更新QProgressBar
  8. Android数据的四种存储方式之SQLite数据库
  9. NGUI panel使用soft clip时,屏幕缩放后无法正常工作的问题解决
  10. AJAX里调用AJAX,作定时进度刷新
  11. Java CompletableFuture 详解
  12. python基础教程第6章——抽象
  13. 小心ThreadLocal的陷阱
  14. solr 学习笔记1
  15. Linux中的 openssl-opensslv
  16. Jupyter ~ 像写文章般的 Coding (附:同一个ipynb文件,执行多语言代码)
  17. swift 学习- 24 -- 协议 01
  18. APP-8.1-百度语音应用
  19. sc58x config
  20. windows 下安装nodejs 要怎么设置环境变量

热门文章

  1. elasticsearch _bulk api
  2. MySQL的概述和基础(学习整理)
  3. startuml 3 windows 破解教程
  4. ccf 201803-3 URL映射(python)
  5. linux下如何设置日志级别?
  6. Flex 布局教程实例
  7. [C++/JavaScript]数据结构:栈和数列>案例引入(数制的转换)
  8. python多线程使用场景
  9. Python 零基础知识学习
  10. sizeof与strcpy的区别