先来看看XMLHttpRequest的属性:
- readyState
用数字对应XMLHttpRequest处理Http请求响应的各个过程:- 0——未初始化状态:已创建XMLHttpRequest对象,但还未初始化。
- 1——准备发送状态:已调用了XMLHttpRequest.open()方法,准备调用XMLHttpRequest.send()方法。
- 2——发送状态:已经通过XMLHttpRequest.send()将请求发送至服务器端,但还未收到响应。
- 3——正在接收状态:已收到Http响应头部信息,但消息体部分还未接收完。
- 4——加载完毕状态:响应已被完全接收。
- responseText
Http响应的文本内容:当readyState为0、1、2时,responseText为一空字符串;当readyState为3或4时,responseText为已收到的响应文本。 - responseXML
Http响应的XML树。当readyState不为4,或者响应的Content-Type指定的MIME类型不是text/xml、application/xml等时,responseXML为null。 - status
Http状态代码。例如,404=文件未找到,200=成功等。 - statusText
Http状态文本。例如,status为200时对应”OK”。 - multipart
一个bool值,ms跟MIME类型multipart/form-data有关,具体还没搞清楚-_-!请教高手……
再看看XMLHttpRequest的事件。平时主要用到的事件就是onreadystatechange,当readyState属性发生变化的时候会触发。另外还有一些不长用到的事件:onerror、onload、onprogress。
最后是XMLHttpRequest的方法。常用的是这几个:
- abort()
中断XMLHttpRequest请求响应过程,调用后readyState将变为0。 - open(string method,string uri,boolean async,string username,string password)
初始化XMLHttpRequest请求响应过程。注意用户名和密码在与需要认证的服务器通信时才会使用到。 - send(data)
将请求发送至服务器。使用“GET”方式时data应设为null,或不传参数。 - setRequestHeader(string header,string value)
设置请求的头部信息。在调用open()方法后才能调用该方法,否则会出现一个异常。 - 其他方法还有:getResponseHeader()、getAllResponseHeaders()、getInterface()、overrideMimeType()等。
另外如果服务器端是asp.net,应将请求发送至一个空的aspx页面,否则响应会包含页面的所有内容。这个问题曾经郁闷我很久- -!