XMLHttpRequest:responseType 属性

Baseline 已广泛支持

此功能已得到良好确立,并在许多设备和浏览器版本中都可使用。自 ⁨2016 年 11 月⁩以来,它已在所有浏览器中可用。

注意:此功能在 Web Workers 中可用,但 Service Workers 除外。

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

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

一个指定响应包含何种类型数据的字符串。它可以接受以下值:

""

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

"arraybuffer"

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

"blob"

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

"document"

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

"json"

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

"text"

response 是一个字符串形式的文本。

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

异常

InvalidAccessError DOMException

尝试在同步模式下的 XMLHttpRequest(且不属于 Worker)上更改 responseType 的值。有关更多详细信息,请参阅下面的 同步 XHR 限制

用法说明

同步 XHR 限制

在同步 XMLHttpRequest 中,你不能更改 responseType 的值,除非该请求属于一个 Worker。此限制部分是为了帮助确保同步操作不被用于可能阻塞浏览器主线程的大型事务,从而拖慢用户体验。

XHR 请求默认是异步的;只有在调用 open() 时将可选的 async 参数值设为 false,它们才会被置于同步模式。

Worker 中的限制

Worker 中,尝试将 responseType 的值设置为 document 的操作将被忽略。

规范

规范
XMLHttpRequest
# the-responsetype-attribute

浏览器兼容性

另见