用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