復制代碼 代碼如下:
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);
}
}
}