亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > AJAX > 正文

AJax 學習筆記一(XMLHTTPRequest對象)

2024-09-01 08:31:37
字體:
來源:轉載
供稿:網友
今天學習了點關于XMLHttpRequest對象的一些方法和屬性,有點體會,在這里也想記錄起來。

現在很多公司都在做標準的靜態頁面,為了增強客戶的體驗效果,經常會涉及到AJax效果,而設計AJax使用的一種重要技術(工具)就是XMLHttpRequest對象了。今天學習了點關于XMLHttpRequest對象的一些方法和屬性,有點體會,在這里也想記錄起來。
1、何為XMLHttpRequest
  定義:XMLHttp是一套可以在Javascript、VbScript、Jscript等腳本語言中通過http協議傳送或從接收XML及其他數據的一套API。XmlHttp最大的用處是可以更新網頁的部分內容而不需要刷新整個頁面(這是AJax的最大特點之一哦)。
2、創建XMLHttpRequest對象
  在使用XMLHTTPRequest對象發送請求和處理響應之前,我們必須要用javascript創建一個XMLHTTPRequest對象。(IE把XMLHTTPRequest實現為一個ActiveX對象,其他的瀏覽器[如Firefox/Safari/Opear]則把它實現為一個本地的javascript對象)。請看下面的例子吧

復制代碼 代碼如下:


<script language="javascript" type="text/javascript">
var xmlhttp;
// 創建XMLHTTPRequest對象
function createXMLHTTPRequest(){
if(window.ActiveXObject){     // 判斷是否支持ActiveX控件
xmlhttp = new ActiveObject("Microsoft.XMLHTTP"); // IE瀏覽器支持的創建方式
}
else if(window.XMLHTTPRequest){    // 判斷是否把XMLHTTPRequest實現為一個本地javascript對象
xmlhttp = new XMLHTTPRequest(); // FireFox,Opera等瀏覽器支持的創建方式
}
}
</script>


3、屬性和方法
因為涉及的內容很多,本人也是正在學習之中,所以也是參考人家的例子學習的,所以在此將別人好的東西粘貼上來 ,以便復習

復制代碼 代碼如下:


<html>
<head>
<title>XMLHTTPRequest對象的說明DEMO</title>
<script language="javascript" type="text/javascript">
<!--
var xmlhttp;
// 創建一個XMLHTTPRequest對象
function createXMLHTTPRequext(){
if(window.ActiveXObject) {
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
else if(window.XMLHTTPRequest){
xmlhttp = new XMLHTTPRequest();
}
}
function PostOrder(xmldoc)
{
createXMLHTTPRequext();

// 方法:open
// 創建一個新的http請求,并指定此請求的方法、URL以及驗證信息
// 語法:oXMLHttpRequest.open(bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword);
// 參數
// bstrMethod
// http方法,例如:POST、GET、PUT及PROPFIND。大小寫不敏感。
// bstrUrl
// 請求的URL地址,可以為絕對地址也可以為相對地址。
// varAsync[可選]
// 布爾型,指定此請求是否為異步方式,默認為true。如果為真,當狀態改變時會調用onreadystatechange屬性指定的回調函數。
// bstrUser[可選]
// 如果服務器需要驗證,此處指定用戶名,如果未指定,當服務器需要驗證時,會彈出驗證窗口。
// bstrPassword[可選]
// 驗證信息中的密碼部分,如果用戶名為空,則此值將被忽略。

// 備注:調用此方法后,可以調用send方法向服務器發送數據。
xmlhttp.Open("get", "http://localhost/example.htm", false);
// var book = xmlhttp.responseXML.selectSingleNode("http://book[@id='bk101']");
// alert(book.xml);


// 屬性:onreadystatechange
// onreadystatechange:指定當readyState屬性改變時的事件處理句柄
// 語法:oXMLHttpRequest.onreadystatechange = funcMyHandler;
// 如下的例子演示當XMLHTTPRequest對象的readyState屬性改變時調用HandleStateChange函數,
// 當數據接收完畢后(readystate == 4)此頁面上的一個按鈕將被激活
// 備注:此屬性只寫,為W3C文檔對象模型的擴展.
xmlhttp.onreadystatechange= HandleStateChange;

// 方法:send
// 發送請求到http服務器并接收回應
// 語法:oXMLHttpRequest.send(varBody);
// 參數:varBody (欲通過此請求發送的數據。)
// 備注:此方法的同步或異步方式取決于open方法中的bAsync參數,如果bAsync == False,此方法將會等待請求完成或者超時時才會返回,如果bAsync == True,此方法將立即返回。
// This method takes one optional parameter, which is the requestBody to use. The acceptable VARIANT input types are BSTR, SAFEARRAY of UI1 (unsigned bytes), IDispatch to an XML Document Object Model (DOM) object, and IStream *. You can use only chunked encoding (for sending) when sending IStream * input types. The component automatically sets the Content-Length header for all but IStream * input types.
// 如果發送的數據為BSTR,則回應被編碼為utf-8, 必須在適當位置設置一個包含charset的文檔類型頭。
// If the input type is a SAFEARRAY of UI1, the response is sent as is without additional encoding. The caller must set a Content-Type header with the appropriate content type.
// 如果發送的數據為XML DOM object,則回應將被編碼為在xml文檔中聲明的編碼,如果在xml文檔中沒有聲明編碼,則使用默認的UTF-8。
// If the input type is an IStream *, the response is sent as is without additional encoding. The caller must set a Content-Type header with the appropriate content type.
xmlhttp.Send(xmldoc);

// 方法:getAllResponseHeaders
// 獲取響應的所有http頭
// 語法:strValue = oXMLHttpRequest.getAllResponseHeaders();
// 備注:每個http頭名稱和值用冒號分割,并以/r/n結束。當send方法完成后才可調用該方法。
alert(xmlhttp.getAllResponseHeaders());
// 方法:getResponseHeader
// 從響應信息中獲取指定的http頭
// 語法:strValue = oXMLHttpRequest.getResponseHeader(bstrHeader);
// 備注:當send方法成功后才可調用該方法。如果服務器返回的文檔類型為"text/xml", 則這句話
// xmlhttp.getResponseHeader("Content-Type");將返回字符串"text/xml"。可以使用getAllResponseHeaders方法獲取完整的http頭信息。
alert(xmlhttp.getResponseHeader("Content-Type")); // 輸出http頭中的Content-Type列:當前web服務器的版本及名稱。


document.frmTest.myButton.disabled = true;
// 方法:abort
// 取消當前請求
// 語法:oXMLHttpRequest.abort();
// 備注:調用此方法后,當前請求返回UNINITIALIZED 狀態。
// xmlhttp.abort();

// 方法:setRequestHeader
// 單獨指定請求的某個http頭
// 語法:oXMLHttpRequest.setRequestHeader(bstrHeader, bstrValue);
// 參數:bstrHeader(字符串,頭名稱。)
// bstrValue(字符串,值。)
// 備注:如果已經存在已此名稱命名的http頭,則覆蓋之。此方法必須在open方法后調用。
// xmlhttp.setRequestHeader(bstrHeader, bstrValue);
}
function HandleStateChange()
{
// 屬性:readyState
// 返回XMLHTTP請求的當前狀態
// 語法:lValue = oXMLHttpRequest.readyState;
// 備注:變量,此屬性只讀,狀態用長度為4的整型表示.定義如下:
// 0 (未初始化) 對象已建立,但是尚未初始化(尚未調用open方法)
// 1 (初始化) 對象已建立,尚未調用send方法
// 2 (發送數據) send方法已調用,但是當前的狀態及http頭未知
// 3 (數據傳送中) 已接收部分數據,因為響應及http頭不全,這時通過responseBody和responseText獲取部分數據會出現錯誤,
// 4 (完成) 數據接收完畢,此時可以通過通過responseBody和responseText獲取完整的回應數據
if (xmlhttp.readyState == 4){
document.frmTest.myButton.disabled = false;

// 屬性:responseBody
// 返回某一格式的服務器響應數據
// 語法:strValue = oXMLHttpRequest.responseBody;
// 備注:變量,此屬性只讀,以unsigned array格式表示直接從服務器返回的未經解碼的二進制數據。
alert(xmlhttp.responseBody);

// 屬性:responseStream
// 以Ado Stream對象的形式返回響應信息
// 語法:strValue = oXMLHttpRequest.responseStream;
// 備注:變量,此屬性只讀,以Ado Stream對象的形式返回響應信息。
alert(xmlhttp.responseStream);

// 屬性:responseText
// 將響應信息作為字符串返回
// 語法:strValue = oXMLHttpRequest.responseText;
// 備注:變量,此屬性只讀,將響應信息作為字符串返回。XMLHTTP嘗試將響應信息解碼為Unicode字符串,
// XMLHTTP默認將響應數據的編碼定為UTF-8,如果服務器返回的數據帶BOM(byte-order mark),XMLHTTP可
// 以解碼任何UCS-2 (big or little endian)或者UCS-4 數據。注意,如果服務器返回的是xml文檔,此屬
// 性并不處理xml文檔中的編碼聲明。你需要使用responseXML來處理。
alert(xmlhttp.responseText);

// 屬性:responseXML
// 將響應信息格式化為Xml Document對象并返回
// 語法:var objDispatch = oXMLHttpRequest.responseXML;
// 備注:變量,此屬性只讀,將響應信息格式化為Xml Document對象并返回。如果響應數據不是有效的XML文檔,
// 此屬性本身不返回XMLDOMParseError,可以通過處理過的DOMDocument對象獲取錯誤信息。
alert("Result = " + xmlhttp.responseXML.xml);

// 屬性:status
// 返回當前請求的http狀態碼
// 語法:lValue = oXMLHttpRequest.status;
// 返回值:長整形標準http狀態碼,定義如下:
// Number:Description
// 100:Continue
// 101:Switching protocols
// 200:OK
// 201:Created
// 202:Accepted
// 203:Non-Authoritative Information
// 204:No Content
// 205:Reset Content
// 206:Partial Content
// 300:Multiple Choices
// 301:Moved Permanently
// 302:Found
// 303:See Other
// 304:Not Modified
// 305:Use Proxy
// 307:Temporary Redirect
// 400:Bad Request
// 401:Unauthorized
// 402:Payment Required
// 403:Forbidden
// 404:Not Found
// 405:Method Not Allowed
// 406:Not Acceptable
// 407:Proxy Authentication Required
// 408:Request Timeout
// 409:Conflict
// 410:Gone
// 411:Length Required
// 412:Precondition Failed
// 413:Request Entity Too Large
// 414:Request-URI Too Long
// 415:Unsupported Media Type
// 416:Requested Range Not Suitable
// 417:Expectation Failed
// 500:Internal Server Error
// 501:Not Implemented
// 502:Bad Gateway
// 503:Service Unavailable
// 504:Gateway Timeout
// 505:HTTP Version Not Supported
// 備注:長整形,此屬性只讀,返回當前請求的http狀態碼,此屬性僅當數據發送并接收完畢后才可獲取。
alert(xmlhttp.status);

// 屬性:statusText
// 返回當前請求的響應行狀態
// 語法:strValue = oXMLHttpRequest.statusText;
// 備注:字符串,此屬性只讀,以BSTR返回當前請求的響應行狀態,此屬性僅當數據發送并接收完畢后才可獲取。
alert(xmlhttp.statusText);
}
}
//-->
</script>
</head>
<body>
<form>
<input type="button" value="Click Me">
</form>
</body>
</html>


一個比較詳細說明XMLHttpRequest的網址
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国内偷自视频区视频综合| 国产精品久久久av久久久| 亚洲精品电影网| 成人福利视频网| 亚洲欧洲免费视频| 黄色精品在线看| 中文字幕欧美日韩| 日韩国产精品视频| 一区二区欧美在线| 欧美电影免费观看大全| 91性高湖久久久久久久久_久久99| 国产精品久久久久一区二区| 最新91在线视频| 国产性色av一区二区| 国产欧美日韩综合精品| 欧美日韩视频免费播放| 欧美电影免费观看网站| 91丝袜美腿美女视频网站| 久久久999国产精品| 国产精品久久久久久久久男| 欧美性色视频在线| 在线视频中文亚洲| 91精品久久久久| 8090成年在线看片午夜| 日韩av最新在线| 97精品欧美一区二区三区| 高跟丝袜一区二区三区| 国产激情久久久久| 国产精品永久免费观看| 精品国产一区二区三区久久狼5月| 欧美裸身视频免费观看| 国产精品99久久久久久白浆小说| 久久久伊人日本| 日韩国产欧美精品一区二区三区| 中文字幕亚洲精品| 久久男人的天堂| 欧美极品少妇与黑人| 91高清在线免费观看| 高跟丝袜欧美一区| 国产精品久久久久久一区二区| 国产成人精品免费视频| 欧美大肥婆大肥bbbbb| 中文字幕日韩欧美在线视频| 国模叶桐国产精品一区| 欧美激情一级欧美精品| 欧美成人亚洲成人| 亚洲精品久久久一区二区三区| 日本成人在线视频网址| 国产精品爱久久久久久久| 亚洲二区在线播放视频| 久久久久久久999精品视频| 日韩在线视频观看| 久久精品一本久久99精品| 国产精品美女视频网站| 精品亚洲国产成av人片传媒| 国产精品日韩在线一区| 日韩最新在线视频| 亚洲成人黄色在线| 欧美特级www| 91久久久久久久久| 国产日本欧美一区二区三区| 亚洲精品xxx| 青青草国产精品一区二区| 91在线高清视频| 亚洲美女在线看| 国产欧美日韩免费看aⅴ视频| 欧美日韩亚洲精品内裤| 国产精品偷伦免费视频观看的| 国产精品电影网| 欧美激情一级欧美精品| 久久人人97超碰精品888| 九九热99久久久国产盗摄| 欧美丰满少妇xxxx| 亚洲欧美在线看| 亚洲最大的网站| 国产在线视频不卡| 九九久久久久久久久激情| 国产精品亚洲第一区| 亚洲日韩中文字幕在线播放| 午夜精品国产精品大乳美女| 亚洲第一综合天堂另类专| 精品国产一区二区三区四区在线观看| 久热精品视频在线观看一区| …久久精品99久久香蕉国产| 欧美理论电影在线观看| 日韩免费在线电影| 久久精品亚洲一区| 久久久久久午夜| 久久精品福利视频| 欧美性高潮床叫视频| 中文字幕精品一区二区精品| 91福利视频网| 欧美亚洲日本网站| 欧美激情免费视频| 欧美日韩国产色视频| 亚洲精品一区二区网址| 日韩欧美一区视频| 亚洲乱码国产乱码精品精| 另类色图亚洲色图| 亚洲一区精品电影| 国产精品久久久久不卡| 亚洲国产精品免费| 亚洲视频在线免费看| 久久久久久12| 91夜夜揉人人捏人人添红杏| 成人激情视频在线观看| 欧美国产在线视频| 亚洲国产中文字幕久久网| 成人有码视频在线播放| 69久久夜色精品国产69| 992tv成人免费影院| 免费不卡在线观看av| 欧美亚洲成人网| 日韩成人免费视频| 色999日韩欧美国产| 国内外成人免费激情在线视频| 欧美影院成年免费版| 国产成人精品综合久久久| 欧美激情亚洲激情| 日韩av资源在线播放| 欧美午夜片欧美片在线观看| 欧美一区第一页| 超碰97人人做人人爱少妇| 久久久久久久久久久网站| 久久手机免费视频| 麻豆国产va免费精品高清在线| 亚洲欧美激情一区| 午夜精品www| www国产精品视频| 亚洲性av网站| 国产欧美在线观看| 国产精品99免视看9| 亚洲欧美日韩区| 色悠久久久久综合先锋影音下载| 欧美日韩中文字幕在线| 日本91av在线播放| 国产在线999| 久久视频免费在线播放| 亚洲va欧美va国产综合剧情| 91麻豆国产语对白在线观看| 91精品国产高清久久久久久| 国产日韩中文字幕| 色综合色综合久久综合频道88| 热re99久久精品国产66热| 欧美激情一二三| 久久偷看各类女兵18女厕嘘嘘| 九九热最新视频//这里只有精品| 亚洲欧美视频在线| 亚洲亚裔videos黑人hd| 色在人av网站天堂精品| 亚洲电影成人av99爱色| 国产一区二区三区视频免费| 人人爽久久涩噜噜噜网站| 九九热最新视频//这里只有精品| 亚洲第五色综合网| 粉嫩av一区二区三区免费野| 日韩激情av在线免费观看| 九九热最新视频//这里只有精品| 亚洲久久久久久久久久| 久久国产精品亚洲| 亚洲精品456在线播放狼人| 欧美成人第一页| 欧美日韩在线视频一区二区| 欧美孕妇毛茸茸xxxx|