ajax里的status和readystate
先看ajax封装函数
function ajaxFunc(method,url,data,callback) {
var xhr;
if (XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else {
xhr = new ActiveXobject('Microsoft.XMLHttp')
}
method = method.toUpperCase();
if(method == 'GET'){
xhr.open('GET',url+'?'+data,true);
xhr.send();
}else{
xhr.open('POST',url,true);
xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');//不设置请求头不行吗????
xhr.send(data)
}
xhr.onreadystatechange = function () {//ajax是异步的,所有必须监听xhr的发送请求状态变化
if (xhr.readyState == 4) { //0:open完成 1:send完成 2接受到服务器响应 3解析响应中 4解析完成
21 if (xhr.status == 200) {//404:notfound 500:服务器内部错误 304;取缓存
callback(xhr.responseText)
}
}
}
}
ajax发送数据后的返回值,为什么要两个状态码都要判断才能够确定responseText是真正的所需数据呢?
readystate:这个是xhr,XMLHttpRequest的实例对象的状态码,表示ajax发送到获取这一过程中所处的不同状态,分别是0到4.
status:是根据http协议,服务器所返回的HTTP头信息代码; 注意的是每次网络请求,可以返回多次这个状态码,每一次xhr的readystate变化,都会返回这种状态码;常见的有200,304.404,500等;
由此可知,单独判断哪一次都不能获取正在的所需数据。

ajax里的status和readystate的更多相关文章
- AJAX请求时status返回状态明细表(转)
转自:http://www.cnblogs.com/wangking/p/6530904.html AJAX请求时status返回状态明细表 readyState的五种状态2010-03-04 18: ...
- AJAX请求时status返回状态明细表
AJAX请求时status返回状态明细表 readyState的五种状态2010-03-04 18:24对于readyState的五种状态的描述或者说定义,很多Ajax书(英文原版)中大都语焉不详 在 ...
- 在AJAX里 使用【 XML 】 返回数据类型 实现简单的下拉菜单数据
在AJAX里 使用XML返回数据类型 实现简单的下拉菜单数据 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN ...
- 在AJAX里 使用【 JSON 】 返回数据类型 实现简单的下拉菜单数据
在AJAX里 使用JSON返回数据类型 实现简单的下拉菜单数据 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E ...
- SAP CRM One order里user status和system status的mapping逻辑
Below example show: How the mapping relationship between User status and System status maintained in ...
- JS的全局变量无法给Ajax里的变量赋值
前阶段遇到这么一个问题,在JS定义一个全局变量,JS方法里的其他地方都能使用,偏偏ajax里无法赋值,也不是无法赋值,但赋值总是慢一拍,具体的解决方案如下图所示:
- AJAX请求时status返回状态明细表 readyState的五种状态
在<Pragmatic Ajax A Web 2.0 Primer >中偶然看到对readyStae状态的介绍,感觉这个介绍很实在,摘译如下: 0: (Uninitialized) the ...
- 【转】jQuery 的 ajax 方法,返回结果 readyState=4 并且 status=200 时,还进 error 方法
今天在使用jquery.ajax方法去调用后台方法时,ajax中得参数data类型是"JSON",后台DEBUG调试,运行正常,返回正常的结果集,但是前端一直都进到ajax的err ...
- ajax:error:function (XMLHttpRequest, textStatus, errorThrown) 中status、readyState和textStatus状态意义
textStatus: "timeout", 超时 "error", 出错 "notmodified" , 未修改 "parser ...
随机推荐
- 网络编程之 keepalive(zz)
link1: http://tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO/ link2: http://dev.csdn.net/article/849 ...
- aspx页面使用ajax遇到try catch中使用Response.End()报错
1.使用Ajax接收数据,在返回Response.Write()后应该调用Response.End()才能将数据写入到调用的页面,才能被jQuery的回调函数获取到返回的JSON数据 2.在try-- ...
- IDEA修改JDK(全)
https://www.cnblogs.com/hkgov/p/8074085.html 解决:javac: 无效的目标发行版: 1.8 解决:项目JDK版本不对 解决:Jar包问题 1," ...
- [Python设计模式] 第12章 基金理财更省事——外观模式
github地址:https://github.com/cheesezh/python_design_patterns 题目1 用程序模拟股民直接炒股的代码,比如股民投资了股票1,股票2,股票3,国债 ...
- 多线程处理N维度topk问题demo--[c++]
问题 -对多维度特征进行topk排序,使用c++ 优先队列模拟最大堆. /* ---------------------------------- Version : ?? File Name : d ...
- 一目了然了解JAVA集合体系
在编程中,常常需要集中存放多个数据.从传统意义上讲,数组是我们的一个很好的选择,前提是我们事先已经明确知道我们将要保存的对象的数量.一旦在数组初始化时指定了这个数组长度,这个数组长度就是不可变的,如果 ...
- Android 看源码学 Binder
参考:https://jekton.github.io/2018/04/07/binder-why-RemoteListenerCallback-works/ 参考:https://jekton.gi ...
- ComputeShader中Counter类型的使用
接上一篇:https://www.cnblogs.com/hont/p/10122129.html 除了Append类型对应的Consume/AppendStructuredBuffer还有一个Cou ...
- 【iCore4 双核心板_ARM】例程二十六:LWIP_MODBUS_TCP实验——电源监控
实验现象: 核心代码: int main(void) { system_clock.initialize(); led.initialize(); adc.initialize(); delay.in ...
- spring boot重启脚本
jar包同目录添加 start.sh 添加启动权限chmod 755 start.sh ./start.sh ps -ef|grep test |grep -v grep|awk '{print $2 ...