JS方法: var xmlhttp;//必定注意是寫在外面的全局變量,我調了一個上午才發現。 function verify(){ //使用dom方式獲取文本框中的值 var userName=document.getElementById("userName").value; //如下5個步驟即完成ajax應用的5個關鍵步驟 //1. 建立XMLHttpRequest對象(最關鍵&複雜的一步) //須要針對IE和其餘類型的瀏覽器創建這個對象的不一樣方式寫不一樣代碼 if(window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest();//針對mozillar,firefox,opera,safari,ie7,ie8 //針對某些特定版本的mozillar瀏覽器的bug(主要是調用回調函數時會有問題)進行修正(這一步是保證腳本的健壯性) if(xmlhttp.overrideMimeType){ xmlhttp.overrideMimeType("text/xml"); } }else if(window.ActionXObject){ //(老師語)爲何這個放在第二個if語句裏呢? //(1)針對的對象範圍太窄 //(2)自身的缺陷或者說原理已被一些人摸透了,有人利用ActionXObject幹了很多壞事(?)因此會被一些有經驗的用戶直接禁掉 //針對ie6,ie5.5,ie5 //兩個能夠建立XMLHttpRequest對象的控件名稱,保存在一個js數組中,排在前面的較新 varactivexName=["MSXML2.XMLHTTP","Microsoft.XMLHTTP"]; for(var i=0; i<activexName.length; i++){ try{ xmlhttp=new ActionXObject(activexName[i]); break; }catch(e){ } } } //確認XMLHttpRequest對象建立成功(保證腳本的完整性,指開發的時候) if(!xmlhttp){ alert("XMLHttpRequest對象建立視頻!!"); return; }else{ alert(xmlhttp); } //2. 註冊回調函數 //只用函數名,不加括號,是由於該句只是把回調函數名註冊給xmlhttp.onreadystatechange //若是加了括號,則是調用函數,而後把該函數的返回值註冊了。 //xmlhttp狀態每次改變都會從新調用callback方法 xmlhttp.onreadystatechange=callback; //3. 利用open方法設置與服務器的鏈接信息 xmlhttp.open("GET","AjaxServer?name="+userName,true);//Post方法請自行google百度 //還能夠用Post方法進行傳送,//xmlhttp.open(「POST」,」AjaxServer」,true) //xmlhttp.setRequestHeader(「Content-Type」,」application/x-www-form-urlencoded」) //4. 發送數據,開始和服務端進行交互 //之因此send(null)是由於第3步中,數據信息都在url裏了,若是是Post方法,send(具體數據) //如xmlhttp.send(「name」+userName); //第3步中最後一個參數若是false,則運行到該句停止,一直等到數據返回;爲true則代碼繼續運行 xmlhttp.send(null); } function callback(){ //5. 接收響應數據(在回調函數中針對不一樣響應狀態進行處理) //判斷對象的狀態是交互完成的 if(xmlhttp.readyState==4){ //0=未初始化,對象以建立,未調用open //1=open方法調用成功,send方法未調用 //2=send方法已調用,未開始接收數據 //3=正在接收數據,HTTP響應頭信息已經接收,數據還沒有接收完成 //4=完成 //判斷http的交互是否成功 if(xmlhttp.status==200){//關於xmlhttp.status請自行google百度 //獲取服務器端返回數據 varresponseText=xmlhttp.responseText; //純文本方式,關於其餘方式請自行google百度 //將數據顯示在頁面上 //(1)經過Dom方式找到div標籤對應的元素節點 vardivNode=document.getElementById("result"); //(2)設置元素節點中的html內容 divfNode.innerHTML=responseText; }else{//出錯信息} } } //這裏有一個問題 就是 xmlhttp.open("GET","AjaxServer?name="+userName,true); 中的 AjaxServer 對於IE來講 //有些問題,交不到 想要的Servlet中去時,能夠在後面加 ?type=nihao 什麼的 //例:xmlhttp.open("GET","/myBoKe/PingLunController",true); 這個不能到PingLunController.java中,調到了主要的servlet中去了。 多是我用了Iframe標籤的 應該注意一下 // xmlhttp.open("GET","/myBoKe/PingLunController?type=in hao",true); 這樣就能夠了,很奇怪的