1. readyState(状态值)
    readyState是XMLHttpRequest对象的一个属性,该属性表示请求/响应过程的当前活动阶段,所以readyState可以认为是Ajax状态值。
有5种可取值:
0:未初始化。 尚未调用open()方法
1:启动。已经调用open()方法,但尚未调用send()方法。
2:发送。已经调用send()方法。但未接收到响应。
3:接收。已经接收到部分响应数据。
4:完成。已经接收到全部响应数据,而且已经可以在客户端使用了。

只要当readyState属性的值有一个变成另一个值时,都会触发一次readystatechange事件,通常只对readyState值为4的阶段感兴趣,所以一般会进行如下事件绑定

xhr.onreadystatechange = function(){if(xhr.readyState == 4 ){...}
}
  1. status(状态码)
    status是XMLHttpRequest对象的一个属性,是对响应的http状态的一个说明,所以status可以认为是http状态码。无论ajax进行到哪一个步骤,都会有相应的status,也就是说在每一个readyState值下都有不同的status值。
状态码的5大类:
1xx:信息响应类,表示接收到请求并且继续处理。
2xx:处理成功响应类,表示动作被成功接收、理解和接受。
3xx:重定向响应类,表示为了完成指定的动作,必须接收进一步的处理。
4xx:客户端错误,表示客户请求包含语法错误或者不能正确执行。
5xx:服务端错误,表示服务器不能正确执行一个执行的请求。

当readyState值为4时表示服务器响应完成,客户端接收到了全部的数据,但是否是我们需要的数据无法确定,所以通常需要在确定了接收到全部数据后还要检查status的值,有如下处理。

xhr.onreadystatechange = function(){if(xhr.readyState == 4){if(xhr.status >= 200 && xhr.status < 300){...}}
}也可以
xhr.onreadystatechange = function(){//从效率上而言,对于readyState值的确定放到前面,效率更高if(xhr.readyState == 4 && (xhr.status >= 200 && xhr.status < 300){...}
}

Ajax中readyState和status相关推荐

  1. 简单解析Ajax中onreadystatechange事件的readyState属性和status属性

    简单解析Ajax中的onreadystatechange 事件 onreadystatechange 事件 当请求被发送到服务器时,我们需要执行一些基于响应的任务.每当 readyState 改变时, ...

  2. Ajax中有关readyState(状态值)和status(状态码)的问题

    var getXmlHttpRequest=function(){ try{ //主流浏览器提供了XMLHttpRequest对象 return new XMLHttpRequest(); }catc ...

  3. 【ajax】readyState=4并且status=200时,还进error方法

    转载自  [ajax]readyState=4并且status=200时,还进error方法 今天在使用jquery.ajax方法去调用后台方法时,ajax中得参数data类型是"JSON& ...

  4. AJAX 状态值(readyState)与状态码(status)详解

    总结:status体现的是服务器对请求的反馈,而readystate表明客户端与客户的交互状态过程. 1- AJAX状态值与状态码区别AJAX状态值是指,运行AJAX所经历过的几种状态,无论访问是否成 ...

  5. AJAX(二)ResponseText、onreadystatechange 事件、readyState、status、ASP和PHP、数据库实例、XML实例

    AJAX(二)ResponseText.onreadystatechange 事件.readyState.status.ASP和PHP.数据库实例.XML实例 文章目录 AJAX(二)Response ...

  6. webApi前端ajax调用后端返回{“readyState“:0,“status“:0,“statusText“:“error“}解决方案

    webApi前端ajax调用后端返回{"readyState":0,"status":0,"statusText":"error& ...

  7. IOS 10 微信 ajax readystate=0 status=0 解决方法

    IOS 10 微信 ajax readystate=0 status=0 解决方法 参考文章: (1)IOS 10 微信 ajax readystate=0 status=0 解决方法 (2)http ...

  8. 因为返回有true ajax提示进入错误,jquery ajax中error返回错误解决办法

    转自:https://www.jb51.net/article/72198.htm 进入百度搜索此问题,发现有人这么说了一句 Jquery中的Ajax的async默认是true(异步请求),如果想一个 ...

  9. Servlet 与 Ajax 交互一直报status=parsererror

    Servlet 与 Ajax 交互一直报status=parsererror   原因:servlet 返回的数据不是 Json 格式   1.JS代码为: 1 var jsonStr = {'clu ...

  10. ajax加载进度百分比,在ajax中显示加载百分比的进度条,php

    您好我正在使用ajax加载数据库内容.我想显示加载或图像的总百分比.在ajax中显示加载百分比的进度条,php 这是我的脚本 function name1(str) { if (str.length= ...

最新文章

  1. Spark 开窗函数
  2. 配置PIM auto-rp
  3. PMCAFF要搞一场区块链产品大会,各大厂全都来了!
  4. Ebooks C/C++
  5. Stanford CoreNLP--Part of Speech
  6. linux系统根目录执行了chmod,根目录执行chmod -R 777 / 的补救方法
  7. 20145201 《Java程序设计》第六周学习总结
  8. jdbc 生成建表语句_记录一次TDH的inceptor导出建表语句和数据
  9. c语言小程序:打文字游戏【图形库graphics.h】
  10. 前端下载音频的两种处理方式
  11. 2022年全球市场电动线性气缸总体规模、主要生产商、主要地区、产品和应用细分研究报告
  12. echarts甘特图
  13. 【10大基础算法】线性查找算法-NO5
  14. 【定量分析、量化金融与统计学】R语言方差分析的outliers陷阱
  15. 【特征工程】Chap3 Text Data: Flatten, Filtering, Chunking
  16. 微信小程序商城(微店)系统部署及搭建 电商类
  17. 如何在Nintendo Switch上禁用截图按钮
  18. 浅析Windows通信编程
  19. android 播放器架构,Android播放器框架设计系列-1
  20. Android实现键盘弹出界面上移

热门文章

  1. csgo红锁号能解锁吗_CSGO红锁黑刀号!重磅!大规模红锁!
  2. html加水平线紧挨文字,html怎么设置水平线与文字的距离
  3. linux下格式化SD卡
  4. i++和++i为毛会不一样
  5. explain是mysql的关键字吗_mysql 中的explain关键字
  6. 雅典娜暴利烹饪系列(下)
  7. Beaglebone Black– 智能家居控制系统 LAS - 网页服务器 Node.js 、Web Service、页面 和 TCP 请求转 UDP 发送...
  8. python列表del_python删除列表元素的三种方法(remove,pop,del)
  9. R语言分析股票指数的GARCH效应
  10. 占坑:fullpage.js 在edge浏览器上上下移动鼠标(不滚动滚轮)会翻页的问题