//用戶名校驗的方法 //這個方法使用XMLHTTPRequest對象進行AJAX的異步數據交互 var xmlhttp; function verify(){ //1.使用dom的方式獲取文本框中的值 //document.getElementBuId("userName")是dom中獲取元素節點的一種方法,一個元素節點對應HTML頁面中的一個標籤,若是<input> //.value能夠獲取一個元素節點的value屬性值 var userName = document.getElementById("userName").value; //2.建立XMLHttpRequest對象 //這是XMLHttpRequest兌現使用中最爲複雜的一步 //須要這對IE和其餘類型瀏覽器創建這個對象的不方式寫不一樣的代碼 if(window.XMLHttpRequest){ //針對FireFox,Mozillar,opera,safari,IE7,IE8 xmlhttp = new XMLHttpRequest(); //針對某些特定版本的mozillar瀏覽器的bug修正 if(xmlhttp.overrideMimeType){ xmlhttp.overrideMimeType("text/xml") } }else if(window.ActiveXObject){ //針對IE5,IE5.5,IE6(IE7,IE8) //兩個能夠用於建立XMLHTTPRequest對象的控件名稱,保存在一個js數組中 //排在前面的版本較新 var activexName =["MSXML2.XMLHTTP","Microsoft.XMLHTTP"]; for(var i=0;i<activexName.length;i++){ try{ //取出一個控件名進行建立,若是建立成功就終止循環 //若是建立失敗,拋出異常,而後繼續循環,繼續嘗試建立 xmlhttp = new ActiveXObject(activexName[i]); break; } catch(e){ } } } // 確認XMLHttpRequest對象建立成功 // if(!xmlhttp){ // alert("XMLHttpRequest對象建立失敗!"); // return; // }else{ // //alert(xmlhttp); // alert(xmlhttp.readyState); // } //2 註冊回調函數 //註冊回調函數時只須要函數名不要加括號 //咱們須要註冊的是函數名稱,若是加上括號,就把函數的返回值給註冊上了,這是錯誤的 xmlhttp.onreadystatechange = callback; //3設置鏈接信息 //第一個參數表示http的請求方式。支持全部http的請求方式。主要使用get和post //第二個參數表示請求的url地址,get方式的參數也在url中 //第三個參數表示採用異步仍是同步方式交互,true表示異步 //GET方式請求的代碼 //xmlhttp.open("GET","AJAXServer?name="+userName,true); //POST方式請求的代碼 xmlhttp.open("POST","AJAXServer",true); //POST方式須要本身設置http的請求頭 xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //POST方式發送數據 xmlhttp.send("name="+userName); //4 發送數據,開始和服務器端進行交互 //同步方式下,send這句話會在服務器設置回來後才執行完 //異步方式,send這句話執行晚會當即完成 //GET方式 //xmlhttp.send(null); } //回調函數 function callback(){ // alert(xmlhttp.readyState); //5接收響應數據 //判斷對象的狀態是交互完成 if(xmlhttp.readyState==4){ //判斷http的交互是否成功、 if(xmlhttp.status==200){ //獲取服務器端返回的數據 //獲取服務器端輸出的純文本數據 var responseText = xmlhttp.responseText; //將數據顯示在頁面上 //經過dom方式找到div標籤所對應的元素節點 var divNode = document.getElementById("result"); //設置元素節點中的html內容 divNode.innerHTML=responseText; }else { alert("出錯了"); } } }