***********************************************
XMLHttpRequest對象初始化:
***********************************************
<script language="javascript">
var http_request=false;
//IE瀏覽器
http_request=new ActiveXObject("Msxml2.XMLHTTP");
http_request=new ActiveXObject("Microsoft.XMLHTTP");
//Mozilla瀏覽器
http_request=new XMLHttpRequest();
</script>javascript
***********************************************
XMLHttpRequest對象的方法:
***********************************************
方法 描述
abort() 中止當前請求
getAllResponseHeaders() 做爲字符串返回完整的headers
getResponseHeader("headerLabel") 做爲字符串返回單個的headers
open("method","URL"[,asyncFlag[,"userName"[,"password"]]]) 設置未決的請求的目標URL,方法和其它參數
send(content) 發送請求
setRequestHeader("laber","value") 設置header並和請求一塊兒發送
java
***********************************************
XMLHttpRequest對象的屬性:
***********************************************
屬性 描述
onreadystatechange 狀態改變的事件觸發器
readyState 對象狀態(integer):
0=未初始化;1=讀取中;2=已讀取;3=交互中;4=完成
responseText 服務器進程返回數據的文本版本
responseXML 服務器進程返回數據的兼容DOM的XML文檔對象
status 服務器返回的狀態碼,如404="文件未找到";200="成功"
statusText 服務器返回的狀態文本信息瀏覽器
************************************************服務器
一個完整的Ajax調用流程
************************************************
A、初始化對象併發出XMLHttpRequest請求併發
B、指定響應處理函數
http_request.onreadystatechange=processRequest;//這個processRequest是函數名,是當從服務器返回數據後觸發的事件app
C、發出HTTP請求
http_request.open('GET','http://www.163.com/1.asp',true);
http_request.send(null);
//若是第一參數是post則還要加上下面這條語句
http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");async
D、處理服務器返回的信息
在第二步已經指定了響應處理函數,這一步,來看看這個響應處理函數都應該作什麼
function processRequest {
//檢查XMLHttpRequest對象的readyState值,判斷請求目前的狀態。
if(http_request.readyState==4{
//信息已經返回,能夠開始處理
}else{
//信息尚未返回,等待
}
//判斷返回的http狀態碼,肯定返回的頁面沒有錯誤。
if(http_request.status==200{
//頁面正常,能夠開始處理信息
}else{
//頁面有問題
}
}
XMLHttpRequest對成功返回的信息有兩種處理方式:
responseText:將傳回的信息當字符串使用;
responseXML:將傳回的信息當XML文檔使用,能夠用DOM處理.ide
<script language="javascript">
var http_request=false;
function send_request(url){//初始化、指定處理函數、發送請求的函數
http_request=false;
//開始初始化XMLHttpRequest對象
if(window.XMLHttpRequest){//Mozilla瀏覽器
http_request=new XMLHttpRequest();
if(http_request.overrideMimeType){//設置MiME類別
http_request.overideMimeType("text/xml");
}
}
else if(window.ActiveXObject){//IE瀏覽器
try{
http_request=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
http_request=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){}
}
}
if(!http_request){//異常,建立對象實例失敗
window.alert("不能建立XMLHttpRequest對象實例.");
return false;
}
http_request.onreadystateChange=processRequest;
//肯定發送請求的方式和URL以及是否同步執行下段代碼
http_request.open("GET",url,true);
http_request.send(null);
}
//處理返回信息的函數
function processRequest(){
if(http_request.readyState==4){//判斷對象狀態
if(http_request.status==200){//信息已經成功返回,開始處理信息
alert(http_request.responseText);
}else{//頁面不正常
alert("您所請求的頁面有異常.");
}
}
}
</script>函數