(一)创建XMLHttpRequest
1 Internet Explorer
xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP.3.0");
xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP"); xmlhttp_request = new ActiveXObject("Microsoft.XMLHTTP");
|
2 Mozilla﹑Netscape﹑Safari
xmlhttp_request = new XMLHttpRequest(); xmlhttp_request.overrideMimeType('text/xml');
|
3 多种浏览器
try{ if( window.ActiveXObject ){ for( var i = 5; i; i-- ){ try{ if( i == 2 ){ xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" );
} else{ xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" ); xmlhttp_request.setRequestHeader("Content-Type","text/xml"); xmlhttp_request.setRequestHeader("Charset","gb2312"); } break;
} catch(e){ xmlhttp_request = false;
}
}
} else if( window.XMLHttpRequest ) { xmlhttp_request = new XMLHttpRequest(); if(xmlhttp_request.overrideMimeType){
xmlhttp_request.overrideMimeType('text/xml');
}
}
} catch(e){
xmlhttp_request = false;
}
|
(二)发送请求
xmlhttp_request.open('GET', URL, true); xmlhttp_request.send(null);
|
(三)服务器的响应
xmlhttp_request.onreadystatechange =FunctionName; xmlhttp_request.onreadystatechange = function(){ ......
};
//说明:首先要检查请求的状态。只有当一个完整的服务器响应已经收到了,函数才可以处理该响应。XMLHttpRequest 提供了readyState属性来对服务器响应进行判断。 readyState的取值如下: 0 (未初始化) 1 (正在装载) 2 (装载完毕) 3 (交互中) 4 (完成) 所以只有当readyState=4时,一个完整的服务器响应已经收到了,函数才可以处理该响应。具体代码如下: if (http_request.readyState == 4) {
// 收到完整的服务器响应
} else {
// 没有收到完整的服务器响应
} 当readyState=4时,一个完整的服务器响应已经收到了,接着,函数会检查HTTP服务器响应的状态值。完整的状态取值可参见W3C文档。当HTTP服务器响应的值为200时,表示状态正常。
|
(四)处理从服务器得到的数据
有两种方式可以得到这些数据:
(1) 以文本字符串的方式返回服务器的响应
(2) 以XMLDocument对象方式返回响应
阅读(274) | 评论(0) | 转发(0) |