XMLHttpRequest: responseXML 属性
注意:此功能在 Web Workers 中可用,但 Service Workers 除外。
XMLHttpRequest.responseXML
只读属性返回一个 Document
,其中包含请求检索到的 HTML 或 XML;如果请求不成功、尚未发送或数据无法解析为 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。
此属性不可用于 Worker。
值
使用 XMLHttpRequest
接收的 XML 或 HTML 解析后的 Document
,如果未收到数据或数据不是 XML/HTML,则返回 null
。
异常
InvalidStateError
DOMException
-
如果
responseType
不是document
或空字符串,则抛出此异常。
示例
js
const xhr = new XMLHttpRequest();
xhr.open("GET", "/server");
// If specified, responseType must be empty string or "document"
xhr.responseType = "document";
// Force the response to be parsed as 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 |
浏览器兼容性
BCD 表格仅在浏览器中加载
另请参阅
XMLHttpRequest
XMLHttpRequest.response
XMLHttpRequest.responseType
- 解析和序列化 XML
- 将 XML 解析为 DOM 树:
DOMParser
- 将 DOM 树序列化为 XML:
XMLSerializer
(具体而言,是serializeToString()
方法)