XMLHttpRequest

Baseline 廣泛可用 *

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

* 此特性的某些部分可能存在不同級別的支援。

注意:此功能在 Web Workers 中可用,但 Service Workers 除外。

XMLHttpRequest (XHR) 物件用於與伺服器進行互動。您可以在不重新整理整個頁面的情況下從 URL 檢索資料。這使得網頁能夠更新頁面的部分內容,而不會中斷使用者正在進行的操作。

EventTarget XMLHttpRequestEventTarget XMLHttpRequest

儘管名稱如此,XMLHttpRequest 也可以用於檢索任何型別的資料,不僅僅是 XML。

如果您的通訊需要接收伺服器上的事件資料或訊息資料,請考慮透過 EventSource 介面使用 伺服器傳送事件 (Server-sent events)。對於全雙工通訊,WebSockets 可能是更好的選擇。

建構函式

XMLHttpRequest()

建構函式初始化一個 XMLHttpRequest 物件。它必須在呼叫任何其他方法之前呼叫。

例項屬性

此介面還繼承了 XMLHttpRequestEventTargetEventTarget 的屬性。

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

瀏覽器相容性

另見