複製代碼 代碼如下:
var xmlhttp = null;
function myajax() {
//1、建立XMLHttpRequest對象
//2、需要針對IE和其它瀏覽器建立這個對象的不同方式寫不同的代碼
if (window.XMLHttpRequest) {
//針對FF,Mozilar,Opera,Safari,IE7,IE8
xmlhttp = new XMLHttpRequest();
//修正某些瀏覽器bug
if (xmlhttp.overrideMimeType) {
xmlhttp.overrideMimeType("text/xml");
}
} else if (window.ActiveXObject) {
//針對IE6以下的瀏覽器
var activexName = ["MSXML2.XMLHTTP", "Microsoft.XMLHTTP", ""];
for (var i = 0; i < activexName.length; i++) {
try {
//取出一個控制項名稱建立,如果建立成功則停止,反之拋出異常
xmlhttp = new ActiveXObject(activexName[i]);
break;
} catch (e) { }
}
}
//需要確認xmlhttp建立是否成功
if (!xmlhttp) {
alert("XMLHTTPRequest建立失敗!");
return;
} else {
alert(xmlhttp);
}
//註冊回呼函數。注意註冊回呼函數是不能加括弧,加了會把函數的值返回給onreadystatechange
xmlhttp.onreadystatechange = callback;
//設定串連資訊
//第一個參數表示http請求方式,支援所有http的請求方式,主要使用get和post
//第二個參數表示請求的url地址,get方式請求的參數也在urlKh
//第三介參數表示採用非同步還是同步方式互動,true表示非同步
xmlhttp.open("GET", "servlet/CheckUserName?userName=" + userName, true);
//發送資料表示和伺服器端互動
//同步方式下,send這名話會在伺服器端資料回來後才執行完
xmlhttp.send(null);
//非同步方式下,send這句話立即完成執行
//POST方式請求的代碼
//xmlhttp.open("POST","servlet/CheckUserName",true);
//POST方式需要自己設定http的要求標頭
//xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//POST方式發送資料
//xmlhttp.send("userName="+userName);
}
//回呼函數
function callback() {
//判斷對象的狀態是互動完成
if (xmlhttp.readyState == 4) {
//判斷http的互動是否成功
if (xmlhttp.status == 200) {
//擷取伺服器端返回的資料
//擷取伺服器端輸出的純文字資料
var responseText = xmlhttp.responseText;
alert(responseText);
}
}
}