Ajax實現步驟和原理


1.獲取ajax異步對象
     IE4~IE12 : 使用new ActiveXObject("microsoft.xmlhttp");
     非IE : 使用new XMLHttpRequest();
2.ajax.open(method,url);
     method是提交方式  有 get和post兩種
     url是提交路徑
3.ajax.send()
4.ajax.onreadystatechange 這是一個監聽函數
     包括五中狀態碼:
          0—ajax異步對象創建完畢,但是還未發送
          1—ajax已經調用了open()方法,但是還未調用send()方法
          2—已經調用send(),但是還未到達服務器端
          3—表示請求已經到達服務端,正在服務端的處理,但是還未響應返回
          4—ajax已經完全接收了服務器的響應信息,但是狀態碼未必是正確的
                   狀態碼有:
                                        200:正確
                                       404/500:錯誤
                                                   ps:a. 每個瀏覽器的0,1,2,3這四種狀態顯示的不一樣,但是4這個狀態碼每
                                                           個瀏覽器都 有,所以我們只需要使用4即可
                                                           b.  0.1.2.3.4是ajax中的響應碼,200/404/500是web中的狀態碼
5.ajax.readyState == 4
6.ajax.status == 200;
7.獲取值  ajax.requestText或者ajax.requestXML

例1get:
   
   
   
           
  1. <script type="text/javascript">
  2. //定位文本框,同時提供焦點失去事件
  3. document.getElementById("usernameID").onblur = function(){
  4. //獲取文本框中輸入的值
  5. var username = this.value;
  6. //如果用戶沒有填內容
  7. if(username.length == 0){
  8. //提示
  9. document.getElementById("resID").innerHTML = "用戶名必填";
  10. }else{
  11. //對漢字進行UTF-8(U8)的編碼
  12. username = encodeURI(username);
  13. //NO1)
  14. var ajax = createAJAX();
  15. //NO2)
  16. var method = "GET";
  17. var url = "${pageContext.request.contextPath}/UserServlet?time="+new Date().getTime()+"&username=" + username;
  18. ajax.open(method,url);
  19. //NO3)
  20. ajax.send(null);
  21. //--------------------------------------------------------等待
  22. //NO4)
  23. ajax.onreadystatechange = function(){
  24. if(ajax.readyState == 4){
  25. if(ajax.status == 200){
  26. //NO5)
  27. var tip = ajax.responseText;
  28. //NO6)
  29. document.getElementById("resID").innerHTML = tip;
  30. }
  31. }
  32. }
  33. }
  34. }
  35. </script>
例2:post
   
   
   
           
  1. <script type="text/javascript">
  2. document.getElementById("usernameID").onblur = function(){
  3. var username = this.value;//傑克
  4. //NO1)
  5. var ajax = createAJAX();
  6. //NO2)
  7. var method = "POST";
  8. var url = "${pageContext.request.contextPath}/UserServlet?time="+new Date().getTime();
  9. ajax.open(method,url);
  10. //設置AJAX請求頭為POST,他會將請求體中的漢字自動進行UTF-8的編碼
  11. ajax.setRequestHeader("content-type","application/x-www-form-urlencoded");
  12. //NO3)
  13. var content = "username=" + username;
  14. ajax.send(content);
  15. //===========================================等待
  16. //NO4)
  17. ajax.onreadystatechange = function(){
  18. if(ajax.readyState == 4){
  19. if(ajax.status == 200){
  20. //NO5)
  21. var tip = ajax.responseText;
  22. //NO6)
  23. //創建img標簽
  24. var imgElement = document.createElement("img");
  25. //設置img標簽的src/width/height的屬性值
  26. imgElement.src = tip;
  27. imgElement.style.width = "12px";
  28. imgElement.style.height = "12px";
  29. //定位span標簽
  30. var spanElement = document.getElementById("resID");
  31. //清空span標簽中的內容
  32. spanElement.innerHTML = "";
  33. //將img標簽加入到span標簽中
  34. spanElement.appendChild(imgElement);
  35. }
  36. }
  37. }
  38. }
  39. </script>






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM