XMLHttpRequest
XMLHttpRequest
(XHR) 对象用于与服务器交互。您可以从 URL 中检索数据,而无需进行完整的页面刷新。这使得 Web 页面能够更新页面的一部分,而不会中断用户的操作。
尽管名称如此,XMLHttpRequest
可用于检索任何类型的数据,而不仅仅是 XML。
如果您的通信需要涉及从服务器接收事件数据或消息数据,请考虑通过EventSource
接口使用服务器发送事件。对于全双工通信,WebSockets 可能是更好的选择。
构造函数
XMLHttpRequest()
-
构造函数初始化
XMLHttpRequest
。在调用任何其他方法之前必须调用它。
实例属性
此接口还继承了XMLHttpRequestEventTarget
和EventTarget
的属性。
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 工作线程中不可用。 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()
事件
abort
-
当请求被中止时触发,例如因为程序调用了
XMLHttpRequest.abort()
。也可以通过onabort
事件处理程序属性访问。 error
-
当请求遇到错误时触发。也可以通过
onerror
事件处理程序属性访问。 load
-
当
XMLHttpRequest
事务成功完成时触发。也可以通过onload
事件处理程序属性访问。 loadend
-
当请求完成时触发,无论成功(在
load
之后)还是不成功(在abort
或error
之后)。也可以通过onloadend
事件处理程序属性访问。 loadstart
-
当请求开始加载数据时触发。也可以通过
onloadstart
事件处理程序属性访问。 progress
-
当请求收到更多数据时定期触发。也可以通过
onprogress
事件处理程序属性访问。 readystatechange
-
每当
readyState
属性更改时触发。也可以通过onreadystatechange
事件处理程序属性访问。 timeout
-
当进度因预设时间到期而终止时触发。也可以通过
ontimeout
事件处理程序属性访问。
规范
规范 |
---|
XMLHttpRequest 标准 # interface-xmlhttprequest |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。
另请参阅
XMLSerializer
:将 DOM 树序列化为 XML- 使用 XMLHttpRequest
- Fetch API