ajax如何实现、readyState五种状态的含义
ajax实现
var getXmlHttpRequest = function () {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
//低版本的IE浏览器没有提供XMLHttpRequest对象
//所以必须使用IE浏览器的特定实现ActiveXObject
return new ActiveXObject("Microsoft.XMLHTTP");
}
};
var xhr = getXmlHttpRequest();
xhr.open("TYPE", "URL", true);
xhr.send("");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
//数据在xhr.responseText
}
};
readyState
的四种状态
readyState
用来标识XMLHttpRequest
对象处于什么状态
0:未初始化,尚未调用open()
方法。
1:启动,已经调用open()
,但未调用send()
方法。
2:发送,已经调用send()
,但尚未接收到响应
3:接收,已经接收到部分响应的数据。
4:完成,已经接收完全部数据,可以在客户端使用。
status
1XX:服务器收到请求,需要继续处理。例如101状态码,表示服务器将通知客户端使用更高版本的HTTP协议。
2XX:请求成功。例如200状态码,表示请求所希望的响应头或数据体将随此响应返回。
3XX:重定向。例如302状态码,表示临时重定向,请求将包含一个新的URL地址,客户端将对新的地址进行GET请求。
4XX:客户端错误。例如404状态码,表示客户端请求的资源不存在。
5XX:服务器错误。例如500状态码,表示服务器遇到了一个未曾预料的情况,导致了它无法完成响应,一般来说,这个问题会在程序代码出错时出现。