Ajax的XMLHttpRequest對象
編寫一個例子:從伺服器取回一個Hello Ajax字串。
HTML:
<input type="button" value="ajax提交" onclick="Ajax();" />
<div id="result">
</div>
js:定義Ajax函數,非同步擷取資料
1、聲明一個XMLHttpRequest對象
2、對XMLHttpRequest對象執行個體化
3、調用XMLHttpRequest對象的open(),設定伺服器的URL和請求的方式,以及是否非同步。
4、註冊非同步回調事件,伺服器相應會有事件通知,註冊這個事件,就等於設定回呼函數。
5、發送請求,調用send()方法,使用Get方式請求可以不用設定send的參數。
<script type="text/javascript">
var XmlHttpReq = null;//聲明一個XMLHttpRequest對象
if (window.ActiveXObject) {//對XMLHttpRequest對象執行個體化
XmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
} else if (window.XMLHttpRequest) {
XmlHttpReq = new XMLHttpRequest();
}
function Ajax() { //定義Ajax函數,非同步擷取資料,在Button中的onclick事件中調用
XmlHttpReq.open("Get", "Default.aspx", true);//設定伺服器的URL和請求的方式,以及是否非同步
XmlHttpReq.onreadystatechange = RequestCallBack;//註冊非同步回調事件,伺服器相應會有事件通知,註冊這個事件,就等於設定回呼函數
XmlHttpReq.send();發送請求,調用send()方法,使用Get方式請求可以不用設定send的參數或者null
}
function RequestCallBack() {//回呼函數,註冊在onreadystatechange事件之上
if (XmlHttpReq.readyState == 4) {
if (XmlHttpReq.Status == 200) {
document.getElementById("result").innerHTML = XmlHttpReq.responseText;
}
}
}
</script>