ajax用戶名校驗demo詳解

//用戶名校驗的方法
//這個方法使用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("出錯了");
      }
    }

}
相關文章
相關標籤/搜索