XMLHttpRequest類首先由InternetExplorer以ActiveX對象引入,被稱為XMLHTTP。后來Mozilla﹑Netscape﹑Safari和其他瀏覽器也提供了XMLHttpRequest類,不過它們創(chuàng)建XMLHttpRequest類的方法不同。

對" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 信息時代 > AJAX基礎(chǔ)應(yīng)用

AJAX基礎(chǔ)應(yīng)用

時間:2022-02-16 12:26:01 | 來源:信息時代

時間:2022-02-16 12:26:01 來源:信息時代

創(chuàng)建XMLHttpRequest方法

XMLHttpRequest類首先由InternetExplorer以ActiveX對象引入,被稱為XMLHTTP。后來Mozilla﹑Netscape﹑Safari和其他瀏覽器也提供了XMLHttpRequest類,不過它們創(chuàng)建XMLHttpRequest類的方法不同。

對于InternetExplorer瀏覽器:

xmlhttp_request=newActiveXObject('Msxml2.XMLHTTP.3.0');//3.0或4.0,5.0

xmlhttp_request=newActiveXObject('Msxml2.XMLHTTP');

xmlhttp_request=newActiveXObject('Microsoft.XMLHTTP');

由于在不同InternetExplorer瀏覽器中XMLHTTP版本可能不一致,為了更好的兼容不同版本的InternetExplorer瀏覽器,因此我們需要根據(jù)不同版本的InternetExplorer瀏覽器來創(chuàng)建XMLHttpRequest類,上面代碼就是根據(jù)不同的InternetExplorer瀏覽器創(chuàng)建XMLHttpRequest類的方法。

對于Mozilla﹑Netscape﹑Safari等瀏覽器

創(chuàng)建XMLHttpRequest方法如下:xmlhttp_request=newXMLHttpRequest();

如果服務(wù)器的響應(yīng)沒有XMLmime-typeheader,某些Mozilla瀏覽器可能無法正常工作。為了解決這個問題,如果服務(wù)器響應(yīng)的header不是text/xml,可以調(diào)用其它方法修改該header。

xmlhttp_request=newXMLHttpRequest();

xmlhttp_request.overrideMimeType('text/xml');

在實(shí)際應(yīng)用中,為了兼容多種不同版本的瀏覽器,一般將創(chuàng)建XMLHttpRequest類的方法寫成如下形式:

try{

if(window.ActiveXObject){

for(vari=5;i;i--){

try{

if(i==2){

xmlhttp_request=newActiveXObject('Microsoft.XMLHTTP');}

else{

xmlhttp_request=newActiveXObject('Msxml2.XMLHTTP.' i '.0');

xmlhttp_request.setRequestHeader('Content-Type','text/xml');

xmlhttp_request.setRequestHeader('Charset','gb2312');}

break;}

catch(e){

xmlhttp_request=false;}}}

elseif(window.XMLHttpRequest)

{xmlhttp_request=newXMLHttpRequest();

if(xmlhttp_request.overrideMimeType)

{xmlhttp_request.overrideMimeType('text/xml');}}}

catch(e){xmlhttp_request=false;}

發(fā)送請求

可以調(diào)用HTTP請求類的open()和send()方法,如下所示:

xmlhttp_request.open('GET',URL,true);

xmlhttp_request.send(null);

open()的第一個參數(shù)是HTTP請求方式—GET,POST或任何服務(wù)器所支持的您想調(diào)用的方式。按照HTTP規(guī)范,該參數(shù)要大寫;否則,某些瀏覽器(如Firefox)可能無法處理請求。

第二個參數(shù)是請求頁面的URL。

第三個參數(shù)設(shè)置請求是否為異步模式。如果是TRUE,JavaScript函數(shù)將繼續(xù)執(zhí)行,而不等待服務(wù)器響應(yīng)。這就是'AJAX'中的'A'。

服務(wù)器的響應(yīng)

這需要告訴HTTP請求對象用哪一個JavaScript函數(shù)處理這個響應(yīng)??梢詫ο蟮膐nreadystatechange屬性設(shè)置為要使用的JavaScript的函數(shù)名,如下所示:

xmlhttp_request.onreadystatechange=FunctionName;

FunctionName是用JavaScript創(chuàng)建的函數(shù)名,注意不要寫成FunctionName(),當(dāng)然我們也可以直接將JavaScript代碼創(chuàng)建在onreadystatechange之后,例如:

xmlhttp_request.onreadystatechange=function(){

//JavaScript代碼段

};

首先要檢查請求的狀態(tài)。只有當(dāng)一個完整的服務(wù)器響應(yīng)已經(jīng)收到了,函數(shù)才可以處理該響應(yīng)。XMLHttpRequest提供了readyState屬性來對服務(wù)器響應(yīng)進(jìn)行判斷。

readyState的取值如下:

0(未初始化)

1(正在裝載)

2(裝載完畢)

3(交互中)

4(完成)

所以只有當(dāng)readyState=4時,一個完整的服務(wù)器響應(yīng)已經(jīng)收到了,函數(shù)才可以處理該響應(yīng)。具體代碼如下:

if(http_request.readyState==4){//收到完整的服務(wù)器響應(yīng)}

else{//沒有收到完整的服務(wù)器響應(yīng)}

當(dāng)readyState=4時,一個完整的服務(wù)器響應(yīng)已經(jīng)收到了,接著,函數(shù)會檢查HTTP服務(wù)器響應(yīng)的狀態(tài)值。完整的狀態(tài)取值可參見W3C文檔。當(dāng)HTTP服務(wù)器響應(yīng)的值為200時,表示狀態(tài)正常。

處理從服務(wù)器得到的數(shù)據(jù)

有兩種方式可以得到這些數(shù)據(jù):

(1)以文本字符串的方式返回服務(wù)器的響應(yīng)

(2)以XMLDocument對象方式返回響應(yīng)

關(guān)鍵詞:基礎(chǔ)

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉