XMLHttpRequest:responseXML 属性

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

注意:此功能在 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

浏览器兼容性

另见