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

浏览器兼容性

另见