responseXML属性用于将来自服务器的响应信息格式化为Xml Document对象并返回。使用该属性时,服务器端要生成XML格式的数据,还要把响应的content-type设置为text/html,如果响应体不是“text/xml”返回null。
(2)XMLHttpReuest对象的常用事件详解
onreadystatechange事件,当HTTP请求被发送到服务器时,我们需要执行一些基于响应的任务。使用readyState来存放 XMLHttpRequest对象 的状态信息,当 readyState 改变时,就会触发 onreadystatechange 事件。所以,可以使用此事件来处理一些基本的响应任务,当然此事件的重点是来处理当服务器响应已做好被处理的准备时所执行的任务,即 readyState=4 并且 status=200的时候。
(3)XMLHttpReuest对象的常用方法详解
a:void open(string method,string url, boolean asynchronous[,string username][,string password])方法
作用:
初始化一个XMLHttpRequest对象,创建一个新的http请求,并指定此请求的方法、URL以及验证信息。
参数:
method:必选项,用于指定你想用来发送请求的HTTP方法(GET,POST,PUT,DELETE或HEAD)。为了把数据发送到服务器,应该使用POST方法;为了从服务器端检索数据,应该使用GET方法。
url:必选项,用于指定XMLHttpRequest对象把请求发送到的服务器相应的URI。借助于window.document.baseURI属性,该uri被解析为一个绝对的URI-换句话说,你可以使用相对的URI-它将使用与浏览器解析相对的URI一样的方式被解析。
asynchronous:必选项,用于指示这个调用是异步还是同步的,默认值为true,这表示请求本质上是异步的。如果这个参数为false,处理就会等待,直到从服务器返回响应为止。由于异步调用是使用Ajax的主要优点之一,所以倘若将这个参数设置为false,从某种程度上讲与使用XMLHttpRequest对象的初衷不太相符。在 某些情况下这,个参数设置为false也是有用的,比如在持久存储页面之前你可能想先验证用户的输入。
username:可选项,对于要求认证的服务器,你可以提供可选的用户名参数。
password:可选项,对于要求认证的服务器,你可以提供可选的口令参数。
备注:
在调用open()方法后,XMLHttpRequest对象把它的readyState属性设置为1并且把responseText、 responseXML、status和statusText属性复位到它们的初始值。另外,它还复位请求头部。注意,如果你调用open()方法并且此时readyState为4,则XMLHttpRequest对象将复位这些值。
b:void send(content)方法
作用:
向服务器发出请求
参数:
content:可选项,可以是一个DOM对象的实例、一个输入流,或者是一个串。该参数可以包含可变类型的数据。典型地,你使用它并通过POST方法把数据发送到服务器。另外,你可以显式地使用null参数调用send()方法,这与不用参数调用它一样。对于大多数其它的数据类型,在调用send()方法之前,应该使用setRequestHeader()方法(见后面的解释)先设置 Content-Type头部。如果在send(data)方法中的data参数的类型为DOMString,那么,数据将被编码为UTF-8。如果数据 是Document类型,那么将使用由data.xmlEncoding指定的编码串行化该数据。注意,传入这个对象的内容会作为请求体的一部分发送。
备注:
在通过调用open()方法准备好一个请求之后,我们需要把该请求发送到服务器。仅当readyState值为1时,你才可以调用send()方法;否则的 话,XMLHttpRequest对象将引发一个异常。该请求被使用提供给open()方法的参数发送到服务器。当async参数为true 时,send()方法立即返回,从而允许其它客户端脚本处理继续。在调用send()方法后,XMLHttpRequest对象把readyState的 值设置为2(发送)。当服务器响应时,在接收消息体之前,如果存在任何消息体的话,XMLHttpRequest对象将把readyState设置为 3(正在接收中)。当请求完成加载时,它把readyState设置为4(已加载)。对于一个HEAD类型的请求,它将在把readyState值设置为 3后再立即把它设置为4。