用XMLHttpRequest對象,發請求的基本代碼以下:javascript
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的區別,須要區分下。html
readystatus(是XMLHttpRequest對象發請求後的客戶端服務端的一些信息記錄?)具體以下所示:java
0 - (未初始化)尚未調用send()方法
1 - (載入)已調用send()方法,正在發送請求
2 - (載入完成)send()方法執行完成,已經接收到所有響應內容
3 - (交互)正在解析響應內容
4 - (完成)響應內容解析完成,能夠在客戶端調用了url
而status則是http的狀態碼,如200,404,500之類的spa
可參考:http://www.cnblogs.com/lxinxuan/archive/2009/10/22/1588053.htmlcode
//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"); } } }
詳細解釋以下文章所示:xml
readyState-->>http://hi.baidu.com/devilpn/item/bc6c2d2b69d516cbdcf69ad6htm
status-->>http://www.cnblogs.com/JemBai/archive/2009/04/10/1432939.html對象
w3c-->>http://www.w3school.com.cn/xml/xml_http.aspblog