XMLHttpRequest: responseType property

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.

Note: This feature is available in Web Workers, except for Service Workers.

The XMLHttpRequest property responseType is an enumerated string value specifying the type of data contained in the response.

It also lets the author change the response type. If an empty string is set as the value of responseType, the default value of text is used.

Value

A string which specifies what type of data the response contains. It can take the following values:

""

An empty responseType string is the same as "text", the default type.

"arraybuffer"

The response is a JavaScript ArrayBuffer containing binary data.

"blob"

The response is a Blob object containing the binary data.

"document"

The response is an HTML Document or XML XMLDocument, as appropriate based on the MIME type of the received data. See HTML in XMLHttpRequest to learn more about using XHR to fetch HTML content.

"json"

The response is a JavaScript object created by parsing the contents of received data as JSON.

"text"

The response is a text in a string.

Note: When setting responseType to a particular value, the author should make sure that the server is actually sending a response compatible with that format. If the server returns data that is not compatible with the responseType that was set, the value of response will be null.

Exceptions

InvalidAccessError DOMException

An attempt was made to change the value of responseType on an XMLHttpRequest which is in synchronous mode but not in a Worker. For additional details, see Synchronous XHR restrictions below.

Usage notes

Synchronous XHR restrictions

You cannot change the value of responseType in a synchronous XMLHttpRequest except when the request belongs to a Worker. This restriction is designed in part to help ensure that synchronous operations aren't used for large transactions that block the browser's main thread, thereby bogging down the user experience.

XHR requests are asynchronous by default; they are only placed in synchronous mode by passing false as the value of the optional async parameter when calling open().

Restrictions in Workers

Attempts to set the value of responseType to document are ignored in a Worker.

Specifications

Specification
XMLHttpRequest Standard
# the-responsetype-attribute

Browser compatibility

BCD tables only load in the browser

See also