Ajax中有关readyState(状态值)和status(状态码)的问题
var getXmlHttpRequest=function(){
try{
//主流浏览器提供了XMLHttpRequest对象
return new XMLHttpRequest();
}catch(e){
//低版本的IE浏览器没有提供XMLHttpRequest对象,IE6以下,所以必须使用IE浏览器的特定实现ActiveXObject
return new ActiveXObject("Microsoft.XMLHTTP");
}
};
var xhr=getXmlHttpRequest();
//readyState 0=>初始化 1=>载入 2=>载入完成 3=>解析 4=>完成
xhr.open("type","url",true);
xhr.send();
xhr.onreadystatechange=function(){
//console.log(xhr.status);//HTTP状态码
//console.log(xhr.readyState);
if(xhr.readyState===4 && xhr.status===200){
alert(xhr.responseText);
}
};
1.Ajax:readyState(状态值)和status(状态码)的区别
readyState,是指运行AJAX所经过的几种状态,无论访问是否成功都将响应的步骤,可以理解成AJAX运行步骤,使用“ajax.readyState”获得
status,是指无论AJAX访问是否成功,由HTTP协议根据所提交的信息,服务器返回的HTTP头信息代码,使用“ajax.status”获得
2.什么是readyState
readyState是XMLHttpRequest对象的一个属性,用来标识当前XMLHttpRequest对象处于什么状态。
readyState总共有5个状态值,分别为0~4,每个值代表了不同的含义
0:初始化,XMLHttpRequest对象还没有完成初始化
1:载入,XMLHttpRequest对象开始发送请求
2:载入完成,XMLHttpRequest对象的请求发送完成
3:解析,XMLHttpRequest对象开始读取服务器的响应
4:完成,XMLHttpRequest对象读取服务器响应结束
3.什么是status
status是XMLHttpRequest对象的一个属性,表示响应的HTTP状态码
在HTTP1.1协议下,HTTP状态码总共可分为5大类
①:信息响应类,表示接收到请求并且继续处理
②:处理成功响应类,表示动作被成功接收、理解和接受
③:重定向响应类,为了完成指定的动作,必须接受进一步处理
④:客户端错误,客户请求包含语法错误或者是不能正确执行
⑤:服务端错误,服务器不能正确执行一个正确的请求
status常见状态码
200——交易成功
404——没有发现文件、查询或URL
500——服务器产生内部错误