XMLHttpRequest对象可以从Server端取回的数据分为两种,虽然在HTTP协议的角度来看都是纯文本格式,但一个是普通的文本字符串,其响应的Content-Type是text/plain,可以用XMLHttpRequest.responseText属性取得这个string,另外一个是XML格式的文本,Content-Type是text/xml,虽然取得是文本内容,但XMLHttpRequest却能帮你内部转换,你只需要访问XMLHttpRequest.resposeXML属性就可以取得一个W3C DOM对象。
要注意的是,即使响应返回的MIME类型是text/xml,我们仍然可以用XMLHttpRequest.responseText来得到xml格式的原始文本内容,而不是一个DOM对象。
XMLHttpRequest.responseText和XMLHttpRequest.responseText都是XMLHttpRequest对象的属性,不是方法,切忌当成方法调用!
XMLHttpRequest.responseText
如果要发挥XMLHttpRequest.responseText的最大作用,就不得不依靠innerHTML这个不是标准的标准属性。这就像JSTL里面不是标准的标准标签一样让人郁闷。innerHTML属性不是XML DOM和HTML的标准,但几乎每个浏览器又支持它。
我们可以利用配置了id属性的div标签来使用返回的文本字符串:
<div id="insert"></div>
在js代码中可以这样:
document.getElementById("insert").innerHTML = xhr.responseText;
XMLHttpRequest.responseXML
对于XML格式来说,由于浏览器内置的强大的DOM API解析功能,使得我们可以方便的遍历检索需要的信息,特别是XML格式的数据提供了一种层次性的结构,使得对数据的组织更加方便。