不用jquery等框架實現ajax無刷新登錄


 1  <script type="text/javascript">
 2         window.onload = function () {
 3       
 4             document.getElementById("btn").onclick = function () {
 5               
 6                 var username = document.getElementById("uname").value;
 7                 var password = document.getElementById("pwd").value;
 8                 var xmh = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
 9                 xmh.open("post", "/Handler1.ashx?username=" + username + "&password=" + password, true);
10                 xmh.onreadystatechange = function () {
11                     if (xmh.readyState == 4) {
12                         if (xmh.status == 200) {
13                             //var x=eval('('+xmh.responseText+')');//把json字符串轉換為json對象
14                                                                     //上下兩種方法都行
15                             var x = JSON.parse(xmh.responseText);//把json字符串轉換為json對象
16                             alert(x.status);
17                         }
18                         else {
19                             alert("出錯");
20                         }
21                     }
22 
23                 };
24                 xmh.send();
25             }
26         };
27     </script>

什么是 XMLHttpRequest 對象?

XMLHttpRequest 對象用於在后台與服務器交換數據。

XMLHttpRequest 對象是開發者的夢想,因為您能夠:

  • 在不重新加載頁面的情況下更新網頁
  • 在頁面已加載后從服務器請求數據
  • 在頁面已加載后從服務器接收數據
  • 在后台向服務器發送數據

所有現代的瀏覽器都支持 XMLHttpRequest 對象。

 在回調函數中處理服務器的響應

onreadystatechange就是回調函數(處理服務器的響應,根據狀態碼
  • 0:請求未初始化(還沒有調用 open())。
  • 1:請求已經建立,但是還沒有發送(還沒有調用 send())。
  • 2:請求已發送,正在處理中(通常現在可以從響應中獲取內容頭)。
  • 3:請求在處理中;通常響應中已有部分數據可用了,但是服務器還沒有完成響應的生成。
  • 4:響應已完成;您可以獲取並使用服務器的響應了。
status這類狀態代碼表明服務器成功地接受了客戶端請求(如果readystatus為4,這只是服務器端完成了響應,但是是否是正確的響應就不知道了)
200 - OK 一切正常,對GET和POST請求的應答文檔跟在后面。 


免責聲明!

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



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