此頁面由社群從英文翻譯而來。了解更多並加入 MDN Web Docs 社群。
XMLHttpRequest
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
* Some parts of this feature may have varying levels of support.
備註: 此功能可在 Web Worker(不包括 Service Worker)中使用。
XMLHttpRequest(XHR)物件用於與伺服器互動。你可以從 URL 擷取資料,而無需重新整理整個頁面。這使得網頁能夠只更新頁面的一部分,而不會干擾使用者正在進行的操作。
儘管其名稱如此,XMLHttpRequest 可用於擷取任何類型的資料,而不僅僅是 XML。
如果你的通訊需求涉及從伺服器接收事件資料或訊息資料,請考慮透過 EventSource 介面使用伺服器發送事件。對於全雙工通訊,WebSocket 可能是更好的選擇。
建構子
XMLHttpRequest()-
此建構子會初始化一個
XMLHttpRequest。它必須在任何其他方法呼叫之前被呼叫。
實體屬性
此介面也繼承了 XMLHttpRequestEventTarget 和 EventTarget 的屬性。
XMLHttpRequest.readyStateRead only-
回傳一個數字,表示請求的狀態。
XMLHttpRequest.responseRead only-
回傳一個
ArrayBuffer、Blob、Document、JavaScript 物件或字串,其類型取決於XMLHttpRequest.responseType的值,其中包含回應實體的主體。 XMLHttpRequest.responseTextRead only-
回傳一個字串,其中包含以文字形式呈現的請求回應,如果請求不成功或尚未發送,則回傳
null。 XMLHttpRequest.responseType-
指定回應的類型。
XMLHttpRequest.responseURLRead only-
回傳回應的序列化 URL,如果 URL 為 null,則回傳空字串。
XMLHttpRequest.responseXMLRead only-
回傳一個包含請求回應的
Document,如果請求不成功、尚未發送或無法解析為 XML 或 HTML,則回傳null。在 Web Worker 中不可用。 XMLHttpRequest.statusRead only-
回傳請求的 HTTP 回應狀態碼。
XMLHttpRequest.statusTextRead 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.uploadRead only-
一個
XMLHttpRequestUpload,表示上傳過程。 XMLHttpRequest.withCredentials-
如果跨站
Access-Control請求應使用憑證(例如 Cookie 或授權標頭)發出,則回傳true;否則回傳false。
非標準屬性
XMLHttpRequest.mozAnonRead only Non-standard-
一個布林值。如果為真值,請求將在不帶 Cookie 和驗證標頭的情況下發送。
XMLHttpRequest.mozSystemRead 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之後)還是不成功(在abort或error之後)。也可透過onloadend事件處理器屬性使用。 loadstart-
當請求開始載入資料時觸發。也可透過
onloadstart事件處理器屬性使用。 progress-
當請求接收到更多資料時定期觸發。也可透過
onprogress事件處理器屬性使用。 readystatechange-
每當
readyState屬性變更時觸發。也可透過onreadystatechange事件處理器屬性使用。 timeout-
當進度因預設時間到期而終止時觸發。也可透過
ontimeout事件處理器屬性使用。
規範
| Specification |
|---|
| XMLHttpRequest> # interface-xmlhttprequest> |
瀏覽器相容性
Loading...
參見
XMLSerializer:將 DOM 樹序列化為 XML- 使用 XMLHttpRequest
- Fetch API