请教,关于AJAX,这里的readystate为什么是4或者是complete啊?
function showCD(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="getcd.php"
url=url+"?q="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") //这一行
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
} 展开
这里的状态一般有下面几种:
1、0:请求未初始化(还没有调用 open())。
2、1:请求已经建立,但是还没有发送(还没有调用 send())。
3、2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。
4、3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。
5、4:响应已完成;
只有4 和"complete"才可以获取并使用服务器的响应。
扩展资料:
AJAX请求的五个步骤:
1、创建XMLHttpRequest异步对象。
var xhr;if (window.XMLHttpRequest) {
xhr=new XMLHttpRequest();
}else {
xhr=new ActiveXObject("Microsoft.XMLHTTP");
}
2、 设置回调函数
xhr.onreadystatechange = callback
3、使用open方法与服务器建立连接
xhr.open("get", "test.php", true)
xhr.open("post", "test.php", true)
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
4、 向服务器发送数据
xhr.send(null)
xhr.send("name=jay&age=18")
5、 在回调函数中针对不同的响应状态进行处理
function callback() {
if(xhr.readyState == 4) {
if(xhr.status == 200) {
var res = xhr.responseText
res = JSON.parse(res)
}}}
推荐于2017-11-29
0:未初始化。new完后;
1:已打开。对象已经创建并初始化,但还未调用send方法
2:已发送。已经调用send 方法,但该对象正在等待状态码和头的返回;
3:正在接收。已经接收了部分数据,但还不能使用该对象的属性和方法,因为状态和响应头不完整;
4:已加载。所有数据接收完毕
complete一般相对于js判断文件(图片、swf、脚本文件...)加载状态时使用:
0-UNINITIALIZED:XML 对象被产生,但没有任何文件被加载。
1-LOADING:加载程序进行中,但文件尚未开始解析。
2-LOADED:部分的文件已经加载且进行解析,但对象模型尚未生效。
3-INTERACTIVE:仅对已加载的部分文件有效,在此情况下,对象模型是有效但只读的。
4-COMPLETED:文件已完全加载,代表加载成功。
在开发中, 两者都表示已经接收到响应数据。
0:请求未初始化(还没有调用 open())。
1:请求已经建立,但是还没有发送(还没有调用 send())。
2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。
3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。
4:响应已完成;
只有4 和"complete"才可以获取并使用服务器的响应。
0:未初始化。new完后;
1:已打开。对象已经创建并初始化,但还未调用send方法
2:已发送。已经调用send 方法,但该对象正在等待状态码和头的返回;
3:正在接收。已经接收了部分数据,但还不能使用该对象的属性和方法,因为状态和响应头不完整;
4:已加载。所有数据接收完毕
complete一般相对于js判断文件(图片、swf、脚本文件...)加载状态时使用:
0-UNINITIALIZED:XML 对象被产生,但没有任何文件被加载。
1-LOADING:加载程序进行中,但文件尚未开始解析。
2-LOADED:部分的文件已经加载且进行解析,但对象模型尚未生效。
3-INTERACTIVE:仅对已加载的部分文件有效,在此情况下,对象模型是有效但只读的。
4-COMPLETED:文件已完全加载,代表加载成功。
在开发中, 两者都表示已经接收到响应数据。
扩展资料
没有征得用户同意投放快递柜属于违法行为吗?
邮政管理部门:未获用户同意投放快递柜属违法行为
近日,丰巢快递柜收费引发极大争议,杭州“硬核”小区抵制收费宣布暂停使用更是将丰巢推向风口浪尖。
据江苏省邮政管理局统计,省内15%的快递采取了快递柜方式投递。邮政管理部门表示,快递柜收费是市场行为,由市场调节,但前提必须是合法。
此外,快递员未征得用户同意就投到快递柜属违法行为,用户可向快递企业投诉。若企业不改正,可拨打12305申诉。用户若因未通知投递入柜导致收费的,应积极维权。
0:未初始化。new完后;
1:已打开。对象已经创建并初始化,但还未调用send方法
2:已发送。已经调用send 方法,但该对象正在等待状态码和头的返回;
3:正在接收。已经接收了部分数据,但还不能使用该对象的属性和方法,因为状态和响应头不完整;
4:已加载。所有数据接收完毕
complete一般相对于js判断文件(图片、swf、脚本文件...)加载状态时使用:
0-UNINITIALIZED:XML 对象被产生,但没有任何文件被加载。
1-LOADING:加载程序进行中,但文件尚未开始解析。
2-LOADED:部分的文件已经加载且进行解析,但对象模型尚未生效。
3-INTERACTIVE:仅对已加载的部分文件有效,在此情况下,对象模型是有效但只读的。
4-COMPLETED:文件已完全加载,代表加载成功。
在开发中, 两者都表示已经接收到响应数据。