創建XMLHtttRequest對象(針對mozilla,IE8,FF,IE5,IE5.5,IE6,IE7)
//2、創建XMLHttpRequest對象
//這其實是XMLHttpReqest對象使用最復雜的一步
//針對IE和其他類型瀏覽器建立這個對象的不同方式寫不同的代碼
if(window.XMLHttpRequest){
//針對firefox,mozillaz,opera,IE7,IE8
xmlhttp = new XMLHttpRequest();
//用于修復某些Mozillaz瀏覽器bug
if(xmlhttp.overrideMimeType)
{
xmlhttp.overrideMimeType("text/xml");
}
}
else if(window.ActiveXObject){
//針對IE6,IE5.5,IE5
//兩個都可以創建XMLHttpRequest對象,保存在js數組中
var activeName=["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
//var activeName= ['MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0', //'MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0', //'MSXML2.XMLHTTP','Microsoft.XMLHTTP'];
for(var i =0;i<activeName.length;i++)
{//取出一個控件名來創建XMLHttpRequest對象,創建成功就終止循環,如果創建失敗可以繼續創建
//可以拋出異常,繼續創建
try{
xmlhttp= new ActiveXObject(activeName[i]);
break;
}catch(e){
}
}
}
//確認XMLHttpRequest對象已經創建成功
if(!xmlhttp)
{
alert("XmlHttpRequest創建失敗");
return;
}
//3、注冊回調函數,函數名后面不要加括號
//如果加了括號,就變成了調用函數,會把函數的返回值發揮給xmlhttp,沒有達到我們的目的
xmlhttp.onreadystatechange=callback;
//4、設置連接信息
//第一個參數設置http請求方式,主要是get和post兩種方式
//第二個參數是uri地址
//第三個參數表示異步交互還是同步交互方式,true表示異步,false表示同步
xmlhttp.open("GET","/JQuery/servlet/AjaxServlet?name="+username,true);
//5、發送數據開始和服務器端交互
//同步方式下,send這句話會在服務器端的數據回來后,才執行完
//異步方式下,send會立即執行完
xmlhttp.send(null);
}
//5、寫回調函數
//回調函數
function callback(){
//接收相應的相應數據
//判斷交互狀態已經完成
if(xmlhttp.readyState ==4)
{
//判斷http的交互狀態
if(xmlhttp.status == 200)
{
//獲取服務器端返回的數據
//獲取服務器端純文本數據
var responseText = xmlhttp.responseText;
//將數據顯示在頁面上
//通過dom獲取div元素節點
var divNode =document.getElementById("result");
//設置元素節點的html內容
divNode.innerHTML=responseText;
}
}