XMLHttpRequest.responseType

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.

XMLHttpRequest 属性 responseType 是一个枚举字符串值,用于指定响应中包含的数据类型。

它还允许作者更改响应类型。如果将 responseType 的值设置为空字符串,则会使用 text 作为默认值。

语法

js
var type = XMLHttpRequest.responseType;

XMLHttpRequest.responseType = type;

Global_Objects/String 类型的值,指定响应包含的数据类型。它可以采用以下值:

""

空的 responseType 字符串与默认类型 "text" 相同。

"arraybuffer"

response 是一个包含二进制数据的 JavaScript ArrayBuffer

"blob"

response 是一个包含二进制数据的 Blob 对象。

"document"

response 是一个 HTML DocumentXML XMLDocument,根据接收到的数据的 MIME 类型而定。请参阅 XMLHttpRequest 中的 HTML,了解有关使用 XHR 获取 HTML 内容的更多信息。

"json"

response 是通过将接收到的数据内容解析为 JSON 而创建的 JavaScript 对象。

"text"

responseDOMString 对象中的文本。

"ms-stream" 非标准

response 是流式下载的一部分;此响应类型仅允许用于下载请求,并且仅受 Internet Explorer 支持。

备注:responseType 设置为特定值时,作者应确保服务器实际发送的响应与该格式兼容。如果服务器返回的数据与设置的 responseType 不兼容,则 response 的值将为null .

异常

InvalidAccessError

试图更改 XMLHttpRequestresponseType,该值处于同步模式但不在 Worker 中。有关其他详细信息,请参阅下面的 同步 XHR 限制

使用说明

同步 XHR 限制

你不能在同步XMLHttpRequest 中更改 responseType 的值,除非请求属于 Worker。此限制部分旨在帮助确保同步操作不会用于阻塞浏览器主线程的大型事务,从而阻碍用户体验。

XHR 请求默认是异步的;它们仅通过在调用 open() 时将 false 作为可选async 参数的值传递来置于同步模式。

Worker 中的限制

Worker 中尝试将 responseType 的值设置为 document 时会被忽略。

规范

Specification
XMLHttpRequest Standard
# the-responsetype-attribute

浏览器兼容性

BCD tables only load in the browser

参见