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状态码,表示服务器遇到了一个未曾预料的情况,导致了它无法完成响应,一般来说,这个问题会在程序代码出错时出现。

标签: none

添加新评论