vb-xmlhttp控件屬性方法_第1頁
vb-xmlhttp控件屬性方法_第2頁
vb-xmlhttp控件屬性方法_第3頁
vb-xmlhttp控件屬性方法_第4頁
vb-xmlhttp控件屬性方法_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、xmlHttpRequest 的 status 的值的含義雖然常寫 ajax 方面的東西,但是很少去專門了解 xmlHttpRequest 的 status 各個(gè)值的含義,只是在用到 時(shí) Google 一下,下面將他人已總結(jié)過的轉(zhuǎn)載一下,學(xué)習(xí)學(xué)習(xí)。xmlHttpRequest 對(duì)象的 status 代表當(dāng)前 http 請(qǐng)求的狀態(tài), 是一個(gè)長整型數(shù)據(jù), 現(xiàn)在介紹一下它的含義。http 請(qǐng)求狀態(tài)及其含義表1xx - 信息提示100 - 初始的請(qǐng)求已經(jīng)接受,客戶應(yīng)當(dāng)繼續(xù)發(fā)送請(qǐng)求的其余部分。 (HTTP 1.1 新)101 - 服務(wù)器將遵從客戶的請(qǐng)求轉(zhuǎn)換到另外一種協(xié)議。(HTTP 1.1 新)2xx

2、- 成功200 - OK 一切正常,對(duì) GET 和 POST 請(qǐng)求的應(yīng)答文檔跟在后面。201 - Created 服務(wù)器已經(jīng)創(chuàng)建了文檔, Location 頭給出了它的 URL。202 - Accepted 已經(jīng)接受請(qǐng)求,但處理尚未完成。203 - Non-Authoritative Information 文檔已經(jīng)正常地返回, 但一些應(yīng)答頭可能不正確, 因?yàn)槭褂玫氖俏?檔的拷貝,非權(quán)威性信息( HTTP 1.1 新)。204 - No Content 沒有新文檔, 瀏覽器應(yīng)該繼續(xù)顯示原來的文檔。 如果用戶定期地刷新頁面, 而 Servlet 可以確定用戶文檔足夠新,這個(gè)狀態(tài)代碼是很有用的。2

3、05 - Reset Content 沒有新的內(nèi)容,但瀏覽器應(yīng)該重置它所顯示的內(nèi)容。用來強(qiáng)制瀏覽器清除表單輸 入內(nèi)容( HTTP 1.1 新)。206 - Partial Content客戶發(fā)送了一個(gè)帶有 Range頭的GET請(qǐng)求,服務(wù)器完成了它(HTTP 1.1新)。3xx - 重定向300 - Multiple Choices 客戶請(qǐng)求的文檔可以在多個(gè)位置找到,這些位置已經(jīng)在返回的文檔內(nèi)列出。如 果服務(wù)器要提出優(yōu)先選擇,則應(yīng)該在 Location 應(yīng)答頭指明。301 - Moved Permanently 客戶請(qǐng)求的文檔在其他地方,新的 URL 在 Location 頭中給出,瀏覽器應(yīng)該

4、自動(dòng)地訪問新的 URL 。302 - Found 類似于 301,但新的 URL 應(yīng)該被視為臨時(shí)性的替代, 而不是永久性的。 注意, 在 HTTP1.0中對(duì)應(yīng)的狀態(tài)信息是“ Moved Temporatily ”。出現(xiàn)該狀態(tài)代碼時(shí),瀏覽器能夠自動(dòng)訪問新的 URL ,因此它 是一個(gè)很有用的狀態(tài)代碼。注意這個(gè)狀態(tài)代碼有時(shí)候可以和301 替換使用。例如,如果瀏覽器錯(cuò)誤地請(qǐng)求http:/host/user (缺少了后面的斜杠) ,有的服務(wù)器返回 301,有的則返回 302。嚴(yán)格地說,我們只能假定 只有當(dāng)原來的請(qǐng)求是 GET 時(shí)瀏覽器才會(huì)自動(dòng)重定向。請(qǐng)參見 307。303 - See Other 類似于

5、 301/302,不同之處在于,如果原來的請(qǐng)求是 POST, Location 頭指定的重定向 目標(biāo)文檔應(yīng)該通過 GET 提?。?HTTP 1.1 新)。304 - Not Modified 客戶端有緩沖的文檔并發(fā)出了一個(gè)條件性的請(qǐng)求 (一般是提供 If-Modified-Since 頭 表示客戶只想比指定日期更新的文檔) 。服務(wù)器告訴客戶,原來緩沖的文檔還可以繼續(xù)使用。305 - Use Proxy 客戶請(qǐng)求的文檔應(yīng)該通過 Location 頭所指明的代理服務(wù)器提?。?HTTP 1.1 新)。307 - Temporary Redirect和302 ( Found)相同。許多瀏覽器會(huì)錯(cuò)誤地響

6、應(yīng)302應(yīng)答進(jìn)行重定向,即使原來的請(qǐng)求是POST,即使它實(shí)際上只能在 POST請(qǐng)求的應(yīng)答是303時(shí)才能重定向。由于這個(gè)原因,HTTP1.1 新增了 307,以便更加清除地區(qū)分幾個(gè)狀態(tài)代碼:當(dāng)出現(xiàn) 303 應(yīng)答時(shí),瀏覽器可以跟隨重定向的 GET 和POST請(qǐng)求;如果是307應(yīng)答,則瀏覽器只能跟隨對(duì)GET請(qǐng)求的重定向。(HTTP 1.1新)4xx - 客戶端錯(cuò)誤400 - Bad Request 請(qǐng)求出現(xiàn)語法錯(cuò)誤。401 - Unauthorized 訪問被拒絕,客戶試圖未經(jīng)授權(quán)訪問受密碼保護(hù)的頁面。應(yīng)答中會(huì)包含一個(gè)WWW-Authenticate 頭,瀏覽器據(jù)此顯示用戶名字/密碼對(duì)話框,然后在填

7、寫合適的Authorization 頭后再次發(fā)出請(qǐng)求。404 - Not Found 無法找到指定位置的資源。這也是一個(gè)常用的應(yīng)答。405 - Method Not Allowed 請(qǐng)求方法( GET、POST、HEAD、DELETE、PUT、TRACE 等)對(duì)指定的資源不適用,用來訪問本頁面的 HTTP 謂詞不被允許(方法不被允許) (HTTP 1.1 新)406 - Not Acceptable 指定的資源已經(jīng)找到, 但它的 MIME 類型和客戶在 Accpet 頭中所指定的不兼容, 客戶端瀏覽器不接受所請(qǐng)求頁面的 MIME 類型( HTTP 1.1 新)。407 - Proxy Auth

8、entication Required 要求進(jìn)行代理身份驗(yàn)證,類似于401,表示客戶必須先經(jīng)過代理服務(wù)器的授權(quán)。 ( HTTP 1.1 新)408 - Request Timeout 在服務(wù)器許可的等待時(shí)間內(nèi),客戶一直沒有發(fā)出任何請(qǐng)求??蛻艨梢栽谝院笾?復(fù)同一請(qǐng)求。 ( HTTP 1.1 新)409 - Conflict通常和PUT請(qǐng)求有關(guān)。由于請(qǐng)求和資源的當(dāng)前狀態(tài)相沖突,因此請(qǐng)求不能成功。(HTTP1.1 新)410 - Gone 所請(qǐng)求的文檔已經(jīng)不再可用,而且服務(wù)器不知道應(yīng)該重定向到哪一個(gè)地址。它和404的不同在于, 返回 407表示文檔永久地離開了指定的位置, 而 404表示由于未知的原

9、因文檔不可用。 (HTTP 1.1 新)411 - Length Required 服務(wù)器不能處理請(qǐng)求,除非客戶發(fā)送一個(gè) Content-Length 頭。( HTTP 1.1 新)412 - Precondition Failed 請(qǐng)求頭中指定的一些前提條件失敗( HTTP 1.1 新)。413 - Request Entity Too Large目標(biāo)文檔的大小超過服務(wù)器當(dāng)前愿意處理的大小。如果服務(wù)器認(rèn)為自己能夠稍后再處理該請(qǐng)求,則應(yīng)該提供一個(gè) Retry-After 頭( HTTP 1.1 新)。414 - Request URI Too Long URI 太長( HTTP 1.1 新)。

10、415 -不支持的媒體類型。416 - Requested Range Not Satisfiable服務(wù)器不能滿足客戶在請(qǐng)求中指定的Range頭。(HTTP 1.1新)417 -執(zhí)行失敗。423 -鎖定的錯(cuò)誤。5xx - 服務(wù)器錯(cuò)誤500 - Internal Server Error 服務(wù)器遇到了意料不到的情況,不能完成客戶的請(qǐng)求。501 - Not Implemented 服務(wù)器不支持實(shí)現(xiàn)請(qǐng)求所需要的功能,頁眉值指定了未實(shí)現(xiàn)的配置。502 - Bad Gateway 服務(wù)器作為網(wǎng)關(guān)或者代理時(shí), 為了完成請(qǐng)求訪問下一個(gè)服務(wù)器, 但該服務(wù)器返回了 非法的應(yīng)答。 亦說 Web 服務(wù)器用作網(wǎng)關(guān)或

11、代理服務(wù)器時(shí)收到了無效響應(yīng)。503 - Service Un available服務(wù)不可用,服務(wù)器由于維護(hù)或者負(fù)載過重未能應(yīng)答。例如,Servlet可能在數(shù)據(jù)庫連接池已滿的情況下返回 503。服務(wù)器返回 503時(shí)可以提供一個(gè) Retry-After 頭。這個(gè)錯(cuò)誤代碼為 IIS 6.0 所專用。504 - Gateway Timeout 網(wǎng)關(guān)超時(shí),由作為代理或網(wǎng)關(guān)的服務(wù)器使用,表示不能及時(shí)地從遠(yuǎn)程服務(wù)器獲 得應(yīng)答。(HTTP 1.1新)。505 - HTTP Version Not Supported 服務(wù)器不支持請(qǐng)求中所指明的HTTP版本。(HTTP 1.1新)。Microsoft.XMLHt

12、tp 組件的屬性方法一、使用步驟:1 、創(chuàng)建 XMLHTTP 對(duì)象 /需 MSXML4.0 支持2、 打開與服務(wù)端的連接,同時(shí)定義指令發(fā)送方式,服務(wù)網(wǎng)頁(URL) 和請(qǐng)求權(quán)限等??蛻舳送ㄟ^ Open 命令打開與服務(wù)端的服務(wù)網(wǎng)頁的連接。與普通HTTP指令傳送一樣,可以用GET方法或POST方法指向服務(wù)端的服務(wù)網(wǎng)頁。3、發(fā)送指令。4、等待并接收服務(wù)端返回的處理結(jié)果。5、釋放 XMLHTTP 對(duì)象二、XMLHTTP 方法:Open( bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword )bstrMethod : 數(shù)據(jù)傳送方式,即 GET 或 P

13、OST。 bstrUrl : 服務(wù)網(wǎng)頁的 URL 。varAsync :是否同步執(zhí)行。缺省為 True,即同步執(zhí)行,但只能在DOM中實(shí)施同步執(zhí)行。用中一般將其置為False,即異步執(zhí)行。bstrUser:用戶名,可省略。bstrPassword :用戶口令,可省略。Send( varBody )varBody :指令集??梢允?XML格式數(shù)據(jù),也可以是字符串,流,或者一個(gè)無符號(hào)整數(shù)數(shù)組。也可以 省略,讓指令通過 Open 方法的 URL 參數(shù)代入。setRequestHeader( bstrHeader, bstrvalue )bstrHeader: HTTP 頭(header)bstrval

14、ue: HTTP 頭(header)的值如果Open方法定義為POST,可以定義表單方式上傳:xmlhttp.setRequestHeader( Content-Type, application/x-www-form-urlencoded)三、XMLHTTP 屬性:onreadystatechange:在同步執(zhí)行方式下獲得返回結(jié)果的事件句柄。只能在 DOM中調(diào)用。 responseBody:結(jié)果返回為無符號(hào)整數(shù)數(shù)組。responseStream:結(jié)果返回為 IStream 流。responseText :結(jié)果返回為字符串。responseXML :結(jié)果返回為 XML 格式數(shù)據(jù)。通過respo

15、nseBody屬性獲得的內(nèi)容需要下面這個(gè)函數(shù)轉(zhuǎn)換為正常字符串,否則是亂碼:Function bytes2BSTR(arrBytes)strReturn = arrBytes = CStr(arrBytes)For i = 1 To LenB(arrBytes)ThisCharCode = AscB(MidB(arrBytes, i, 1)If ThisCharCode &H80 ThenstrReturn = strReturn & Chr(ThisCharCode)ElseNextCharCode = AscB(MidB(arrBytes, i+1, 1)strReturn = strRet

16、urn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode)i = i + 1End IfNext bytes2BSTR = strReturnEnd Function四、示例:以下是代碼片段:function getDatal(url)var xmlhttp = new ActiveXObject(MSXML2.XMLHTTP.4.0);/創(chuàng)建 XMLHTTPRequest對(duì)象,需 MSXML4.0 支持MSXML2.XMLHTTP.4.0,MSXML2.DOMDocument.4.0xmlhttp.open(GET,url,false,

17、);/使用 HTTP GET 初始化 HTTP 請(qǐng)求響應(yīng)xmlhttp.send();/ 發(fā)送 HTTP 請(qǐng)求并獲取 HTTP/獲取 XML 文檔return xmlhttp.responseXML; 常見問題:msxml3.dll 錯(cuò)誤 80070005 拒絕訪問。 代碼如下:PostUrl=Server.ScriptTimeOut=20Set oXMLHttp = createObject(Microsoft.XMLHTTP)Call oXMLHttp.Open(get, PostUrl, false)Call oXMLHttp.Send()sHtmlStr = oXMLHttp.resp

18、onseBodySet oXMLHttp = nothing初步判定可能是打開的頁面有跳轉(zhuǎn)的原因,解決辦法是用MSXML2.ServerXMLHTTP替換掉Microsoft.XMLHTTP即可解決。另外在 CSDN 上找到這么一段代碼Private Sub Command1_Click()Dim PostUrl$, ServerURLDim Mail1 As ObjectDim AA$PostUrl = Set Mail1 = CreateObject(CDO.Message)Mail1.CreateMHTMLBody PostUrl, 31AA = Mail1.HTMLBodyText1.

19、Text = AASet Mail1 = NothingEnd Sub試了一下,也可以用,拷過來收藏GET 與 POST 方法的區(qū)別:什么時(shí)候用 get 請(qǐng)求 ,什么時(shí)候用 post 方式請(qǐng)求呢 ? 在做回答前我們首先要了解 get 和 post 的區(qū)別 .1、get 是把參數(shù)數(shù)據(jù)隊(duì)列加到提交表單的ACTION 屬性所指的 URL 中,值和表單內(nèi)各個(gè)字段對(duì)應(yīng),在URL中可以看到。post是通過HTTP post機(jī)制,將表單內(nèi)各個(gè)字段與其內(nèi)容放置在HTMLHEADER 內(nèi)一起傳送到 ACTION 屬性所指的 URL 地址。用戶看不到這個(gè)過程。2、對(duì)于 get 方式,服務(wù)器端用 Request.Q

20、ueryString 獲取變量的值,對(duì)于 post 方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。兩種方式的參數(shù)都可以用Request來獲得。3、 get傳送的數(shù)據(jù)量較小,不能大于256KB。post傳送的數(shù)據(jù)量最大為4M,般被默認(rèn)為不受限制。但理論上,因服務(wù)器的不同而異 .4、 get安全性非常低,post安全性較高。5、 跟 是一樣的, 也就 是說,method 為get時(shí) action 頁面后邊帶的參數(shù)列 表會(huì)被忽視;而 跟 是不一樣的。另外Get 請(qǐng)求有如下特性:它會(huì)將數(shù)據(jù)添加到 URL 中,通過這種方式傳遞到服務(wù)器,通常利用一個(gè)問號(hào)? 代表 URL 地址的結(jié)尾與數(shù)據(jù)參數(shù)的開

21、端,后面的參數(shù)每一個(gè)數(shù)據(jù)參數(shù)以“名稱 =值”的形式出現(xiàn),參數(shù)與 參數(shù)之間利用一個(gè)連接符 & 來區(qū)分。Post 請(qǐng)求有如下特性:數(shù)據(jù)是放在 HTTP 主體中的,其組織方式不只一種,有 & 連接方式,也有分割 符方式,可隱藏參數(shù),傳遞大批數(shù)據(jù),比較方便。通過以上的說明,現(xiàn)在我們大致了解了什么時(shí)候用get什么時(shí)候用post方式了吧,對(duì)!當(dāng)我們?cè)谔峤槐韱蔚臅r(shí)候我們通常用 post方式,當(dāng)我們要傳送一個(gè)較大的數(shù)據(jù)文件時(shí),需要用post。當(dāng)傳遞的值只需用參數(shù)方 式(這個(gè)值不大于256KB)的時(shí)候,用get方式即可。現(xiàn)在我們?cè)倏纯赐ㄟ^URL發(fā)送請(qǐng)求時(shí),get方式和post方式的區(qū)別。用下面的例子可以很容易的

22、看到同樣的數(shù)據(jù)通過 GET和POST來發(fā)送的區(qū)別,發(fā)送的數(shù)據(jù)是 username=三:GET 方式 , 瀏覽器鍵入 http:/localhost?username= 張三GET /?username=%E5%BC%A0%E4%B8%89 HTTP/1.1Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*Accept-Language: zh-cnAccept-En

23、coding: gzip, deflateUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)Host: localhostConnection: Keep-AlivePOST 方式 :POST / HTTP/1.1Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword,

24、 */*Accept-Language: zh-cnContent-Type: application/x-www-form-urlencodedAccept-Encoding: gzip, deflateUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)Host: localhostContent-Length: 28Connection: Keep-Aliveusername=%E5%BC%A0%E4%B8%89區(qū)別就是一個(gè)在 URL 請(qǐng)求里面附帶了表單參數(shù)和值 , 一個(gè)是在 HTTP 請(qǐng)求的消息實(shí)體中。 比較一下上面的兩段文字 , 我們會(huì)發(fā)現(xiàn) GET 方式把表單內(nèi)容放在前面的請(qǐng)求頭中 , 而 POST 則把這 些 內(nèi) 容 放 在 請(qǐng) 求 的 主 體 中 了 , 同 時(shí) POST 中 把 請(qǐng) 求 的 Content-Type 頭 設(shè) 置 為 application/x-www-form-urlencoded. 而發(fā)送的正文都是一樣的 , 可以這樣來構(gòu)造一個(gè)表單提交正文 :encodeURIComponent(arg1)=encodeURIComponen

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論