XMLHttpRequest.responseType

XMLHttpRequest (XHR) の responseType プロパティは列挙型の文字列値で、レスポンスに含まれているデータの型を示します。

作者がレスポンスの型を変更することもできます。 responseType の値として空文字列が設定された場合は、既定値である text が使用されます。

構文

var type = XMLHttpRequest.responseType;

XMLHttpRequest.responseType = type;

文字列で、レスポンスに含まれているデータの型を指定します。以下の値を取ることができます。

""

responseType が空の文字列の場合は "text" と同じで、既定の型です。

"arraybuffer"

response はバイナリーデータを含む JavaScript の ArrayBuffer です。

"blob"

response はバイナリーデータを含む Blob オブジェクトです。

"document"

responseHTMLDocument または XMLXMLDocument で、受信したデータの MIME タイプに基づいて適切な方になります。 XMLHttpRequest における HTML の扱いで、 XHR を使用して HTML コンテンツを読み取ることについて詳しく確認することができます。

"json"

responseJSON として受信したデータの内容を解釈して生成された JavaScript オブジェクトです。

"text"

responseDOMString オブジェクトに入ったテキストです。

"ms-stream" Non-standard

response はストリーミングダウンロードの一部です。このレスポンス型はダウンロードリクエストでのみ利用可能で、 Internet Explorer のみが対応しています。

メモ: responseType を特定の値に設定する場合は、サーバーが実際にその形式と互換性のあるレスポンスを送信していることを確認してください。サーバーが responseType に設定された値と互換性のないデータを返した場合、 response の値は null になります。

例外

InvalidAccessError

responseType の値の変更が同期モードの XMLHttpRequest 上で試みられたものの、ワーカー (Worker) の中ではなかった場合。詳細については、下記の同期 XHR の制限を参照してください。

使用上の注意

同期 XHR の制限

responseType の値を同期 XMLHttpRequest で変更することは、リクエストがワーカー (Worker) に属している場合を除いてできません。この制限は、ブラウザーのメインスレッドをブロックしてユーザーの使い勝手を妨害する巨大なトランザクションが、同期操作で使用されないことを保証する対策の一環として設けられています。

XHR のリクエストは既定では非同期です。同期モードは、 false の値をオプションの async 引数に渡して open() を呼び出した場合のみ設定されます。

ワーカーでの制限

responseType の値を document に指定しようとすると、ワーカー (Worker) の中では失敗します。

仕様書

Specification
XMLHttpRequest Standard
# the-responsetype-attribute

ブラウザーの互換性

BCD tables only load in the browser

関連情報