一、XMLHttpRequest对象的初始化
在不同的浏览器中,初始化方法也是不一样的;
IE浏览器:var http_request = new ActiveXObject("Microsoft.XMLHTTP");
非IE浏览器:var http_request = new XMLHttpRequest(); 实例化为本地的Javascript对象;
为了实现兼容性,可以创建一个跨浏览器的实例化对象
if(window.XMLHttpRequest){
http_request = new XMLHttpRequest();
}else if(window.ActiveXObject){
try{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){}
}
}二、XMLHttpRequest对象的常用属性
1、指定状态改变时所触发的事件处理器的属性onreadystatechange
http_request.onreadystatechange =getResult;
http_request.onreadystatechange =function(){
getResult("添加的参数");
};
2、获取请求状态的属性readyState
- 0 未初始化
- 1 正在加载
- 2 已加载
- 3 交互中
- 4 完成
3、获取服务器的字符串响应的属性responseText
var h = http_request.reponseText;
4、获取服务器的XML响应的属性responseXML
var xmldoc = htttp_request.reponseXML;
5、返回服务器的HTTP状态吗的属性status
- 100 继续发送请求
- 200 请求已经成功
- 202 请求被接受
- 400 错误的请求
- 404 文件未找到
- 408 请求超时
- 500 内部服务器错误
- 501 服务器不支持当前请求所需要的某个功能
if(http_request.readyState == 4){
if(http_request.status == 200){
alert("请求成功!");
}else{
alert("请求未成功!");
}
}三、XMLHttpRequest对象的常用方法
1、创建新请求的方法
语法格式:open("method","URL"[,asyncFlag[,"userName"[,"password"]]])method:用于指定请求类型,一般为get或post
URL:用于指定请求地址,可以使用绝对地址或者相对地址;并且可以传递查询字符串
asyncFlag:为可选参数,用于指定请求方式,异步请求为true,同步请求为false;默认为true
userName:为可选参数,,用于指定请求用户名,没有时可省略;
password:为可选参数,用于指定请求密码,没有时可省略;2、向服务器发送请求的方法
语法:send(content) //content用于指定发送的数据;
http_request.send(null);3、设置请求的HTTP头的方法;
语法格式:setRequestHeader("header:,"value") //header:用于指定HTTP头,value:用于为指定的HTTP头设置值。
http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");4、停止或放弃当前异步请求的方法;
语法格式:abort() http_request.abort();
5、返回HTTP头信息的方法;
语法格式:getResponseHeader("headerLabel")
http_request.getResponseHeader("Content-Type") 返回值:text/html;charset=GBK语法格式:getAIIResponseHeaders();
http_request.getAIIResponseHeaders();