以下列出XMLHttpRequest對象方法和屬性,紅色標記為最有可能用到的
相關方法:
abort() 停止當前請求
getAllResponseHeaders() 把HTTP請求的所有響應首部作為鍵/值對返回
getResponseHeader("header") 返回指定首部的串值
open("method", "url") 建立對伺服器的調用。
send(content) 向伺服器發送請求
setRequestHeader("header", "value") 把指定首部設定為所提供的值。在設定任何首部之前必須先調用open()
相關屬性:
onreadystatechange 狀態改變時都會觸發這個事件處理器,通常調用一個JavaScript函數
readyState 請求的狀態0 = 未初始化,1 = 正在載入,2 = 已載入,3 = 互動中,4 = 完成
responseText 伺服器的響應,表示為一個串
responseXML 伺服器的響應,表示為XML。這個對象可以解析為一個DOM對象
status 伺服器的HTTP狀態代碼(200對應OK,404對應Not Found(未找到),
statusText HTTP狀態代碼的相應文本(OK或Not Found(未找到)等等)
一個標準的 XMLHttpRequest對象實現ajax的步驟
<script type="text/javascript">
var xmlHttp;
//函數一:建立XMLHttpRequest對象
function createXMLHttpRequest() {
//IE不同版本
if (window.ActiveXObject) {
try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); }
catch (e) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");}
}
//非IE
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
//函數二:將被調用的函數
function startRequest () {
createXMLHttpRequest();
var url = "XXX.ashx?"+new Date().getTime();
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
}
//函數三:狀態改變的時候觸發的事件函數
function handleStateChange() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
var result = xmlHttp.responseText;
document.getElementById("validateMessage").innerText = result;
}
}
}
</script>