XMLHttpRequest

基线 广泛可用

此功能已得到良好建立,并且可在许多设备和浏览器版本中使用。它自以下时间起在浏览器中可用: 2015 年 7 月.

注意:此功能在Web 工作线程中可用,但服务工作线程除外。

XMLHttpRequest (XHR) 对象用于与服务器交互。您可以从 URL 中检索数据,而无需进行完整的页面刷新。这使得 Web 页面能够更新页面的一部分,而不会中断用户的操作。

EventTarget XMLHttpRequestEventTarget XMLHttpRequest

尽管名称如此,XMLHttpRequest 可用于检索任何类型的数据,而不仅仅是 XML。

如果您的通信需要涉及从服务器接收事件数据或消息数据,请考虑通过EventSource 接口使用服务器发送事件。对于全双工通信,WebSockets 可能是更好的选择。

构造函数

XMLHttpRequest()

构造函数初始化 XMLHttpRequest。在调用任何其他方法之前必须调用它。

实例属性

此接口还继承了XMLHttpRequestEventTargetEventTarget的属性。

XMLHttpRequest.readyState 只读

返回一个表示请求状态的数字。

XMLHttpRequest.response 只读

返回ArrayBufferBlobDocument、JavaScript 对象或字符串,具体取决于XMLHttpRequest.responseType的值,其中包含响应实体主体。

XMLHttpRequest.responseText 只读

返回一个包含请求响应作为文本的字符串,如果请求不成功或尚未发送,则返回 null

XMLHttpRequest.responseType

指定响应的类型。

XMLHttpRequest.responseURL 只读

返回响应的序列化 URL,如果 URL 为 null,则返回空字符串。

XMLHttpRequest.responseXML 只读

返回包含请求响应的Document,如果请求不成功、尚未发送或无法解析为 XML 或 HTML,则返回 null。在Web 工作线程中不可用。

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

如果应使用诸如 Cookie 或授权标头之类的凭据进行跨站点 Access-Control 请求,则返回 true;否则返回 false

非标准属性

XMLHttpRequest.channel 只读

对象在执行请求时使用的通道。

XMLHttpRequest.mozAnon 只读

布尔值。如果为 true,则请求将发送,但不会包含 Cookie 和身份验证标头。

XMLHttpRequest.mozSystem 只读

布尔值。如果为 true,则不会对请求强制执行同源策略。

XMLHttpRequest.mozBackgroundRequest

布尔值。它指示对象是否表示后台服务请求。

实例方法

XMLHttpRequest.abort()

如果请求已发送,则中止请求。

XMLHttpRequest.getAllResponseHeaders()

返回所有响应标头(以CRLF分隔)作为字符串,如果尚未收到响应,则返回 null

XMLHttpRequest.getResponseHeader()

返回包含指定标头文本的字符串,如果尚未收到响应或响应中不存在该标头,则返回 null

XMLHttpRequest.open()

初始化请求。

XMLHttpRequest.overrideMimeType()

覆盖服务器返回的 MIME 类型。

XMLHttpRequest.send()

发送请求。如果请求是异步的(这是默认设置),则此方法将在发送请求后立即返回。

XMLHttpRequest.setAttributionReporting() 安全上下文 实验性

指示您希望请求的响应能够注册归因源或触发事件。

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 事件处理程序属性访问。

规范

规范
XMLHttpRequest 标准
# interface-xmlhttprequest

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅