XMLHttpRequest
Baseline 廣泛可用 *
注意:此功能在 Web Workers 中可用,但 Service Workers 除外。
XMLHttpRequest (XHR) 物件用於與伺服器進行互動。您可以在不重新整理整個頁面的情況下從 URL 檢索資料。這使得網頁能夠更新頁面的部分內容,而不會中斷使用者正在進行的操作。
儘管名稱如此,XMLHttpRequest 也可以用於檢索任何型別的資料,不僅僅是 XML。
如果您的通訊需要接收伺服器上的事件資料或訊息資料,請考慮透過 EventSource 介面使用 伺服器傳送事件 (Server-sent events)。對於全雙工通訊,WebSockets 可能是更好的選擇。
建構函式
XMLHttpRequest()-
建構函式初始化一個
XMLHttpRequest物件。它必須在呼叫任何其他方法之前呼叫。
例項屬性
此介面還繼承了 XMLHttpRequestEventTarget 和 EventTarget 的屬性。
XMLHttpRequest.readyState只讀-
返回一個數字,表示請求的狀態。
XMLHttpRequest.response只讀-
返回一個
ArrayBuffer、一個Blob、一個Document、一個 JavaScript 物件或一個字串,具體取決於XMLHttpRequest.responseType的值,其中包含響應實體正文。 XMLHttpRequest.responseText只讀-
返回一個包含響應文字的字串,如果請求不成功或尚未傳送,則返回
null。 XMLHttpRequest.responseType-
指定響應的型別。
XMLHttpRequest.responseURL只讀-
返回響應的序列化 URL,如果 URL 為 null,則返回空字串。
XMLHttpRequest.responseXML只讀-
返回一個包含請求響應的
Document,如果請求不成功、尚未傳送或無法解析為 XML 或 HTML,則返回null。在 Web Workers 中不可用。 XMLHttpRequest.status只讀-
返回請求的 HTTP 響應狀態碼。
XMLHttpRequest.statusText只讀-
返回一個包含 HTTP 伺服器返回的響應字串。與
XMLHttpRequest.status不同,這包含了響應訊息的整個文字(例如"OK")。注意:根據 HTTP/2 規範 RFC 7540,第 8.1.2.4 節:響應偽標頭欄位,HTTP/2 沒有定義一種方法來傳遞 HTTP/1.1 狀態行中包含的版本或原因短語。
XMLHttpRequest.timeout-
請求可以進行的時間(以毫秒為單位),超時後將自動終止。
XMLHttpRequest.upload只讀-
一個表示上傳過程的
XMLHttpRequestUpload物件。 XMLHttpRequest.withCredentials-
如果跨站點
Access-Control請求應該使用憑據(如 cookie 或授權標頭)進行,則返回true,否則返回false。
非標準屬性
XMLHttpRequest.mozAnon只讀 非標準-
一個布林值。如果為 true,則請求將在不帶 cookie 和授權標頭的情況下發送。
XMLHttpRequest.mozSystem只讀 非標準-
一個布林值。如果為 true,則不會對請求強制執行同源策略。
例項方法
XMLHttpRequest.abort()-
如果請求已傳送,則中止該請求。
XMLHttpRequest.getAllResponseHeaders()-
返回所有響應頭,以 CRLF 分隔,作為字串;如果尚未收到響應,則返回
null。 XMLHttpRequest.getResponseHeader()-
返回包含指定標頭文字的字串;如果尚未收到響應或響應中不存在該標頭,則返回
null。 XMLHttpRequest.open()-
初始化一個請求。
XMLHttpRequest.overrideMimeType()-
覆蓋伺服器返回的 MIME 型別。
XMLHttpRequest.send()-
傳送請求。如果請求是非同步的(這是預設設定),則此方法會在請求傳送後立即返回。
XMLHttpRequest.setAttributionReporting()安全上下文 實驗性-
指示您希望請求的響應能夠註冊歸因源或觸發事件。
XMLHttpRequest.setRequestHeader()-
設定 HTTP 請求頭的值。您必須在呼叫
open()之後、呼叫send()之前呼叫setRequestHeader()。
事件
此介面還繼承了 XMLHttpRequestEventTarget 的事件。
readystatechange-
每當
readyState屬性發生變化時觸發。也可透過onreadystatechange事件處理程式屬性訪問。
規範
| 規範 |
|---|
| XMLHttpRequest # interface-xmlhttprequest |
瀏覽器相容性
載入中…
另見
XMLSerializer:將 DOM 樹序列化為 XML- 使用 XMLHttpRequest
- Fetch API