XMLHttpRequest.responseXML - Web API 接口参考 编辑

XMLHttpRequest.responseXML 属性是一个只读值,它返回一个包含请求检索的HTML或XML的Document,如果请求未成功,尚未发送,或者检索的数据无法正确解析为 XML 或 HTML,则为 null。默认是当作“text / xml” 来解析。当 responseType 设置为 “document” 并且请求已异步执行时,响应将被当作 “text / html” 来解析。responseXML 对于任何其他类型的数据以及 data: URLs 为 null。

responseXML 在这个属性的历史堪称神器,它可以同时在 HTML 和 XML 中工作

如果服务器没有明确指出 Content-Type 头是 "text/xml" 还是 "application/xml", 你可以使用XMLHttpRequest.overrideMimeType() 强制 XMLHttpRequest 解析为 XML.

语法

var data = XMLHttpRequest.responseXML;

 Document 中包含从 XMLHttpRequest 中收到的 HTML 节点或解析后的 XML 节点,也可能是在没有收到任何数据或数据类型错误的情况下返回的 null.

例外

InvalidStateError
responseType 既不是 "document" 也不是空字符串 (接收的数据应是XML 或 HTML).

示例

var xhr = new XMLHttpRequest();
xhr.open('GET', '/server', true);

// 如果已指明,responseType 必须是空字符串或 "document"
xhr.responseType = 'document';

// overrideMimeType() 用来强制解析 response 为 XML
xhr.overrideMimeType('text/xml');

xhr.onload = function () {
  if (xhr.readyState === xhr.DONE) {
    if (xhr.status === 200) {
      console.log(xhr.response);
      console.log(xhr.responseXML);
    }
  }
};

xhr.send(null);

规范

规范状态注释
XMLHttpRequestLiving StandardWHATWG living standard

浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!
FeatureChromeFirefox (Gecko)[1]Microsoft EdgeInternet ExplorerOperaSafari (WebKit)
Basic support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support?(Yes)(Yes)?(Yes)(Yes)

[1] 在 Firefox 51 之前, 解析收到数据的错误会在 Document 的顶部添加一个 <parsererror> 节点,并且在任何状态下返回 Document 。这是不符合规范的。从 Firefox 51开始,这种情况可以正确的返回 null。

了解更多

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:58 次

字数:7441

最后编辑:7 年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文