XMLHttpRequest

用XMLHttpRequest对象,发请求的基本代码如下:

var xmlhttp=new XMLHttpRequest();
                var url="http://localhost:3004/test";
                xmlhttp.open("get",url,true);
                xmlhttp.onreadystatechange=function(){
                    if(xmlhttp.readystatus==4){
                        if(xmlhttp.status==200){
                            
                        }
                    }
                };
                xmlhttp.send(null);

其中,onreadystatechange事件回调的readystatus与status的区别,需要区分下。

readystatus(是XMLHttpRequest对象发请求后的客户端服务端的一些信息记录?)具体如下所示:

0 - (未初始化)还没有调用send()方法
1 - (载入)已调用send()方法,正在发送请求
2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
3 - (交互)正在解析响应内容
4 - (完成)响应内容解析完成,可以在客户端调用了

而status则是http的状态码,如200,404,500之类的

可参考:http://www.cnblogs.com/lxinxuan/archive/2009/10/22/1588053.html

//W3C上的示例代码
var xmlhttp;
            function loadXMLDoc(url) {
                xmlhttp = null;
                if (window.XMLHttpRequest) {// code for all new browsers
                    xmlhttp = new XMLHttpRequest();
                } else if (window.ActiveXObject) {// code for IE5 and IE6
                    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                }
                if (xmlhttp != null) {
                    xmlhttp.onreadystatechange = state_Change;
                    xmlhttp.open("GET", url, true);
                    xmlhttp.send(null);
                } else {
                    alert("Your browser does not support XMLHTTP.");
                }
            }

            function state_Change() {
                if (xmlhttp.readyState == 4) {// 4 = "loaded"
                    if (xmlhttp.status == 200) {// 200 = OK
                    } else {
                        alert("Problem retrieving XML data");
                    }
                }
            }

  

详细解释如下文章所示:

readyState-->>http://hi.baidu.com/devilpn/item/bc6c2d2b69d516cbdcf69ad6

status-->>http://www.cnblogs.com/JemBai/archive/2009/04/10/1432939.html

w3c-->>http://www.w3school.com.cn/xml/xml_http.asp

 
原文地址:https://www.cnblogs.com/simonbaker/p/3870686.html