用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