XMLHttpRequest: responseXML プロパティ
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。
XMLHttpRequest.responseXML は読み取り専用のプロパティで、リクエストによって受け取った HTML または XML を含む Document、またはリクエストが成功しなかった場合、まだ送信されていない場合、データが XML または HTML として解釈できない場合は null を返します。
メモ:
responseXML という名前はこのプロパティの歴史の遺物です。これは HTML および XML の両方で動作します。
ふつう、レスポンスは "text/xml" として解釈されます。 responseType が "document" に設定され、リクエストが非同期に行われた場合、レスポンスは代わりに "text/html" として解釈されます。他の型のデータでは、 data: の URL の場合と同様、 responseXML は null になります。
サーバーが Content-Type を "text/xml" とも "application/xml" とも指定しなかった場合、 XMLHttpRequest.overrideMimeType() を使用して強制的に XML として解釈させることができます。
このプロパティはワーカーでは使用できません。
値
XMLHttpRequest を用いて受け取った XML または HTML を解釈した Document、またはデータを受け取っていなかったり、データが XML/HTML でなかったりした場合は null
例外
InvalidStateErrorDOMException-
responseTypeが "document" でも空文字列でもない。
例
const xhr = new XMLHttpRequest();
xhr.open("GET", "/server");
// responseType を指定する場合は、空文字列または "document" でなければならない
xhr.responseType = "document";
// レスポンスを XML として解釈するよう強制する
xhr.overrideMimeType("text/xml");
xhr.onload = () => {
if (xhr.readyState === xhr.DONE && xhr.status === 200) {
console.log(xhr.response, xhr.responseXML);
}
};
xhr.send();
仕様書
| 仕様書 |
|---|
| XMLHttpRequest> # the-responsexml-attribute> |
ブラウザーの互換性
関連情報
XMLHttpRequestXMLHttpRequest.responseXMLHttpRequest.responseType- XML の解釈とシリアライズ
- XML を解釈して DOM ツリーに格納:
DOMParser - DOM ツリーを XML にシリアライズ:
XMLSerializer(特にserializeToString()メソッド)