XMLHttpRequest

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

* Some parts of this feature may have varying levels of support.

備註: 此功能可在 Web Worker(不包括 Service Worker)中使用。

XMLHttpRequest(XHR)物件用於與伺服器互動。你可以從 URL 擷取資料,而無需重新整理整個頁面。這使得網頁能夠只更新頁面的一部分,而不會干擾使用者正在進行的操作。

EventTarget XMLHttpRequestEventTarget XMLHttpRequest

儘管其名稱如此,XMLHttpRequest 可用於擷取任何類型的資料,而不僅僅是 XML。

如果你的通訊需求涉及從伺服器接收事件資料或訊息資料,請考慮透過 EventSource 介面使用伺服器發送事件。對於全雙工通訊,WebSocket 可能是更好的選擇。

建構子

XMLHttpRequest()

此建構子會初始化一個 XMLHttpRequest。它必須在任何其他方法呼叫之前被呼叫。

實體屬性

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

XMLHttpRequest.readyState Read only

回傳一個數字,表示請求的狀態。

XMLHttpRequest.response Read only

回傳一個 ArrayBufferBlobDocument、JavaScript 物件或字串,其類型取決於 XMLHttpRequest.responseType 的值,其中包含回應實體的主體。

XMLHttpRequest.responseText Read only

回傳一個字串,其中包含以文字形式呈現的請求回應,如果請求不成功或尚未發送,則回傳 null

XMLHttpRequest.responseType

指定回應的類型。

XMLHttpRequest.responseURL Read only

回傳回應的序列化 URL,如果 URL 為 null,則回傳空字串。

XMLHttpRequest.responseXML Read only

回傳一個包含請求回應的 Document,如果請求不成功、尚未發送或無法解析為 XML 或 HTML,則回傳 null。在 Web Worker 中不可用。

XMLHttpRequest.status Read only

回傳請求的 HTTP 回應狀態碼

XMLHttpRequest.statusText Read only

回傳一個字串,其中包含 HTTP 伺服器回傳的回應字串。與 XMLHttpRequest.status 不同,這包含回應訊息的完整文字(例如 "OK")。

備註: 根據 HTTP/2 規範 RFC 7540, section 8.1.2.4: Response Pseudo-Header Fields,HTTP/2 並未定義一種方法來攜帶 HTTP/1.1 狀態行中包含的版本或原因短語。

XMLHttpRequest.timeout

請求在自動終止前可以花費的時間(以毫秒為單位)。

XMLHttpRequest.upload Read only

一個 XMLHttpRequestUpload,表示上傳過程。

XMLHttpRequest.withCredentials

如果跨站 Access-Control 請求應使用憑證(例如 Cookie 或授權標頭)發出,則回傳 true;否則回傳 false

非標準屬性

XMLHttpRequest.mozAnon Read only Non-standard

一個布林值。如果為真值,請求將在不帶 Cookie 和驗證標頭的情況下發送。

XMLHttpRequest.mozSystem Read only Non-standard

一個布林值。如果為真值,則不會對請求強制執行同源政策。

實體方法

XMLHttpRequest.abort()

如果請求已發送,則中止該請求。

XMLHttpRequest.getAllResponseHeaders()

回傳所有回應標頭,以 CRLF 分隔,作為一個字串;如果尚未收到回應,則回傳 null

XMLHttpRequest.getResponseHeader()

回傳包含指定標頭文字的字串,如果尚未收到回應或回應中不存在該標頭,則回傳 null

XMLHttpRequest.open()

初始化一個請求。

XMLHttpRequest.overrideMimeType()

覆寫伺服器回傳的 MIME 類型。

XMLHttpRequest.send()

發送請求。如果請求是異步的(這是預設值),此方法會在請求發送後立即回傳。

XMLHttpRequest.setAttributionReporting() Secure context 實驗性質

表示你希望請求的回應能夠註冊歸因來源或觸發事件。

XMLHttpRequest.setRequestHeader()

設定 HTTP 請求標頭的值。你必須在呼叫 open() 之後、但在呼叫 send() 之前呼叫 setRequestHeader()

事件

abort

當請求被中止時觸發,例如因為程式呼叫了 XMLHttpRequest.abort()。也可透過 onabort 事件處理器屬性使用。

error

當請求遇到錯誤時觸發。也可透過 onerror 事件處理器屬性使用。

load

XMLHttpRequest 交易成功完成時觸發。也可透過 onload 事件處理器屬性使用。

loadend

當請求完成時觸發,無論是成功(在 load 之後)還是不成功(在 aborterror 之後)。也可透過 onloadend 事件處理器屬性使用。

loadstart

當請求開始載入資料時觸發。也可透過 onloadstart 事件處理器屬性使用。

progress

當請求接收到更多資料時定期觸發。也可透過 onprogress 事件處理器屬性使用。

readystatechange

每當 readyState 屬性變更時觸發。也可透過 onreadystatechange 事件處理器屬性使用。

timeout

當進度因預設時間到期而終止時觸發。也可透過 ontimeout 事件處理器屬性使用。

規範

Specification
XMLHttpRequest
# interface-xmlhttprequest

瀏覽器相容性

參見