创建XMLHttpRequest对象
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHttp");
} else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
XMLHttpRequest属性和方法
方法open():
创建一个http请求,并指定此请求的方法、url及验证信息
语法:XMLHttpRequest.open(reqMethod, url, async, user, password);
参数:
reqMethod: http请求方法,例如:post, get, put;大小写不敏感
url: 请求的url地址
async:布尔型,指定此请求是否为异步方式,默认为true。如果为true,当状态改变时会调用onreadystatechange属性指定的回调函数
uer, password : 如果服务器需要验证,此处指定用户名和密码;若未指定,服务器需验证时,会弹出验证窗口
范例:
xmlHttp.open("GET", "http://localhost:8080/example.html", false );
方法send():
发送请求到服务器并接受回应
语法:XMLHttpRequest.send(varBody);
参数:
varBody:欲通过此请求发送的数据
备注:
此方法的同步或异步方式,取决于open()方法中的async参数;如果async为false,此方法将会等待请求完成或者超时时才会返回;如果async为true,此方法将立即返回。
方法getAllResponseHeader():
获取响应的所有http头
语法:var strValue = XMLHttpRequest.getAllResponseHeaders
备注:
每个http头名称和值用冒号分隔,并以\r\n结束;
当send()方法完成后才可调用
方法getResponseHeader():
从响应信息中获取指定的http头
语法:var strValue = XMLHttpRequest.getResponseHeader(bstrHeader);
参数:
bstrHeader : http头名称
备注:
当send()方法成功后才可调用该方法;
范例:
如若服务器返回的文档类型为“text/xml”:
var strValue = xmlHttp.getResponseHeader("Content-Type"); // text/xml
如若获取完整的http头信息,借助getAllResponseHeader()方法
属性onreadystatechange:
指定当readyState属性改变时的事件处理句柄
语法:XMLHttpRequest.onreadystatechange = funcMyHandler;
属性readyState:
返回XMLHttpRequest的当前状态
语法:var value = xmlHttpRequest.readyState
备注:
此属性只读,状态用长度为4的整型表示,定义如下:
0:未初始化,对象已建立,但是尚未初始化(尚未调用open()方法)
1 : 初始化,对象已建立,尚未调用send()方法
2:发送数据,send()方法已调用,但是当前的状态及http头未知
3:数据传送中,已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出错误
4:完成,数据接收完毕,此时可以通过responseBody和responseText获取完整的响应数据
属性responseBody:
返回某一格式的服务器响应数据
语法:var value = xmlHttpRequest.responseBody;
备注:
此属性只读,以unsigned array格式表示直接从服务器返回的未经解码的二进制数据
属性responseStream:
以Ado Stream对象的形式返回响应信息
语法:var value = xmlHttpRequest.responseStream;
备注:
此属性只读,以Ado Stream对象的形式返回响应信息
属性responseText:
将响应信息作为字符串返回
语法:var value = xmlHttpRequest.responseText;
备注:
此属性只读,将响应信息作为字符串返回。XMLHttp尝试将响应信息解码为Unicode字符串
属性status:
返回当前请求的http状态码
语法:var value = xmlHttpRequest.status;
备注:
长整型标准http状态码,定义如下:
100 : continue
101:Switching protocols
200:OK
201:created
202:Accepted
...