javascript XMLHttpRequest.send() 方法

來源:互聯網
上載者:User

下文 為轉帖


XMLHttpRequest.send()

發送一個 HTTP 要求

文法

send(body)

如果通過調用
open() 指定的 HTTP 方法是 POST 或 PUT,body 參數指定了請求體,作為一個字串或者 Document 對象。

如果請求體不適必須的話,這個參數就為 null。

對於任何其他方法,這個參數是停用,應該為 null(有些實現不允許省略該參數)。

說明

這個方法導致一個 HTTP 要求發送。如果之前沒有調用 open(),或者更具體地說,如果 readyState 不是 1,send() 拋出一個異常。否則,它發送一個 HTTP 要求,該請求由以下幾部分組成:

    * 之前調用 open() 時指定的 HTTP 方法、URL 以及認證資格(如果有的話)。
    * 之前調用 setRequestHeader() 時指定的要求標頭部(如果有的話)。
    * 傳遞給這個方法的 body 參數。

一旦請求發布了,send() 把 readyState 設定為 2,並觸發 onreadystatechange 事件控制代碼。

如果之前調用的 open() 參數 async 為 false,這個方法會阻塞並不會返回,直到 readyState 為 4 並且伺服器的響應被完全接收。

否則,如果 async 參數為 true,或者這個參數省略了,send() 立即返回,並且正如後面所介紹的,伺服器響應將在一個後台線程中處理。

如果伺服器響應帶有一個 HTTP 重新導向,send() 方法或後台線程自動遵從重新導向。當所有的 HTTP 回應標頭部已經接收,send() 或後台線程把 readyState 設定為 3 並觸發 onreadystatechange 事件控制代碼。

如果響應較長,send() 或後台線程可能在狀態 3 中觸發 onreadystatechange 事件控制代碼:這可以作為一個下載進度列指示器。最後,當響應完成,send() 或後台線程把 readyState 設定為 4,並最後一次觸發事件控制代碼。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.