觀察HTTP協議中用戶端向伺服器發送的請求,理解並實現一個最簡單的AJAX請求案例

來源:互聯網
上載者:User

標籤:ready   伺服器的響應   alert   var   asc   val   基礎   網站   java   

一.什麼是HTTP協議

    HTTP協議即超文字傳輸通訊協定 (HTTP),網站就是基於HTTP協議的,例如網站的圖片、CSS、JS等都是基於HTTP協議進行傳輸的。HTTP協議是由從客戶機到伺服器的請求(Request)和從伺服器到客戶機的響應(Response)進行了約束和規範。

    大白話的說,就是你在瀏覽器輸入一個網址,例如http://baidu.com,這時你就是向百度的伺服器發送了請求了....經過一系列你看不到的處理之後,你的瀏覽器出現一個百度的首頁,這就是百度的伺服器對你的瀏覽器的成功的響應.

二.在瀏覽器的NETWORK處觀察請求的報文

1.請求:客服端向伺服器發起

2.響應:由伺服器發出...

三.AJAX

     1.Ajax 的原理簡單來說通過 XmlHttpRequest 對象來向伺服器發非同步請求, 從伺服器獲得資料,然後用javascript來操作DOM而非同步更新頁面。

     2.本質:本質是在HTTP協議的基礎上以非同步方式與伺服器進行通訊。

     3.一個簡單的AJAX請求:

<form action="login.php" method="get">    使用者名稱:<input type="text" name="userName" id="userName"><br>    密碼:<input type="password" name="userPwd"> <br>    <input type="submit" value="註冊"></form><script>  /*需求:當輸入使用者名稱時,立即去伺服器端幫我驗證目前使用者名是否存在*/    document.getElementById("userName").onblur=function(){        var name=document.getElementById("userName").value;        /*1.建立一個能夠實現非同步請求的對象*/        var xhr=new XMLHttpRequest();        console.log(xhr.readyState);        /*2.產生請求報文*/        /*2.1請求報文行*/        xhr.open("get","register.php?name="+name);        /*2.2請求報文頭*/        /*如果是get請求就沒有設定設定報文頭,但是如果是post請求就必須設定Content-Type*/        /*2.3請求報文體*/        /*如果是get請求,那麼就應該在url裡面進行傳遞,那麼 send(null)        如果是post請求,那麼才需要建立單獨的請求報文體   send(username=** & pwd=**)*/        xhr.send(null);        /*監聽伺服器的響應*/        xhr.onreadystatechange=function(){            console.log(xhr.readyState);            /*判斷當前的響應是否成功  1.伺服器做出了響應  2.響應的結果是正確的*/            if(xhr.status==200 && xhr.readyState==4){                console.log(xhr.readyState);                var result=xhr.responseText;                if(result==1){                    alert("使用者名稱已經存在,請重新輸入");                }            }        }    }</script>
四.總結

一個簡單的AJAX請求(以post為例)

1.建立一個非同步對象

var xhr=new XMLHttpRequest();

2.請求行

xhr.open(‘post‘,‘url地址‘);

3.請求體

xhr.setRequestHeader(‘Content-Type‘,‘application/x-www-form-urlencoded‘);

4.請求體

xhr.send(‘name=...&age=....‘);//淺白的說就是: 需要向上面的url裡傳輸的資料

5.get和post請求的區別

    5.1get不需要佈建要求頭

    5.2get的資料傳遞通過url進行傳遞,而post在send方法中傳遞。

 

 

 

        

 

觀察HTTP協議中用戶端向伺服器發送的請求,理解並實現一個最簡單的AJAX請求案例

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.