此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

XMLHttpRequest.responseType

基线
广泛可用

自 2016年11月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

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 Document 或 XML XMLDocument,根据接收到的数据的 MIME 类型而定。请参阅 XMLHttpRequest 中的 HTML,了解有关使用 XHR 获取 HTML 内容的更多信息。

"json"

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

"text"

response 是 String 对象中的文本。

"ms-stream"

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

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

异常

InvalidAccessError

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

使用说明

同步 XHR 限制

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

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

Worker 中的限制

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

规范

规范
XMLHttpRequest
# the-responsetype-attribute

浏览器兼容性

参见