vb-xmlhttp控件屬性方法_第1頁
vb-xmlhttp控件屬性方法_第2頁
vb-xmlhttp控件屬性方法_第3頁
vb-xmlhttp控件屬性方法_第4頁
vb-xmlhttp控件屬性方法_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

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

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

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

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

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

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

7、寫合適的Authorization 頭后再次發(fā)出請求。404 - Not Found 無法找到指定位置的資源。這也是一個常用的應(yīng)答。405 - Method Not Allowed 請求方法( GET、POST、HEAD、DELETE、PUT、TRACE 等)對指定的資源不適用,用來訪問本頁面的 HTTP 謂詞不被允許(方法不被允許) (HTTP 1.1 新)406 - Not Acceptable 指定的資源已經(jīng)找到, 但它的 MIME 類型和客戶在 Accpet 頭中所指定的不兼容, 客戶端瀏覽器不接受所請求頁面的 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ù)器許可的等待時間內(nèi),客戶一直沒有發(fā)出任何請求??蛻艨梢栽谝院笾?復(fù)同一請求。 ( HTTP 1.1 新)409 - Conflict通常和PUT請求有關(guān)。由于請求和資源的當(dāng)前狀態(tài)相沖突,因此請求不能成功。(HTTP1.1 新)410 - Gone 所請求的文檔已經(jīng)不再可用,而且服務(wù)器不知道應(yīng)該重定向到哪一個地址。它和404的不同在于, 返回 407表示文檔永久地離開了指定的位置, 而 404表示由于未知的原

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

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

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

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

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

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

15、xt :結(jié)果返回為字符串。responseXML :結(jié)果返回為 XML 格式數(shù)據(jù)。通過responseBody屬性獲得的內(nèi)容需要下面這個函數(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(This

16、CharCode)ElseNextCharCode = AscB(MidB(arrBytes, i+1, 1)strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode)i = i + 1End IfNext bytes2BSTR = strReturnEnd Function四、示例:以下是代碼片段:< script language="javascript">function getDatal(url)var xmlhttp = new ActiveXO

17、bject("MSXML2.XMLHTTP.4.0");/創(chuàng)建 XMLHTTPRequest對象,需 MSXML4.0 支持"MSXML2.XMLHTTP.4.0","MSXML2.DOMDocument.4.0"xmlhttp.open("GET",url,false,"","");/使用 HTTP GET 初始化 HTTP 請求響應(yīng)xmlhttp.send("");/ 發(fā)送 HTTP 請求并獲取 HTTP/獲取 XML 文檔return xmlhttp

18、.responseXML; 常見問題:msxml3.dll 錯誤 '80070005' 拒絕訪問。 代碼如下:PostUrl=Server.ScriptTimeOut=20Set oXMLHttp = createObject("Microsoft.XMLHTTP")Call oXMLHttp.Open("get", PostUrl, false)Call oXMLHttp.Send("")sHtmlStr = oXMLHttp.responseBodySet oXMLHttp = nothing初步判定可能是打開的頁

19、面有跳轉(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.Text = AASet Mail1 = No

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

21、ost 方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。兩種方式的參數(shù)都可以用Request來獲得。3、 get傳送的數(shù)據(jù)量較小,不能大于256KB。post傳送的數(shù)據(jù)量最大為4M,般被默認(rèn)為不受限制。但理論上,因服務(wù)器的不同而異 .4、 get安全性非常低,post安全性較高。5、<form method="get" action="a.asp?b=b"> 跟 <form method="get" action="a.asp"> 是一樣的, 也就 是說,method 為get時 a

22、ction 頁面后邊帶的參數(shù)列 表會被忽視;而<form method="post" action="a.asp?b=b"> 跟 <form method="post" action="a.asp"> 是不一樣的。另外Get 請求有如下特性:它會將數(shù)據(jù)添加到 URL 中,通過這種方式傳遞到服務(wù)器,通常利用一個問號? 代表 URL 地址的結(jié)尾與數(shù)據(jù)參數(shù)的開端,后面的參數(shù)每一個數(shù)據(jù)參數(shù)以“名稱 =值”的形式出現(xiàn),參數(shù)與 參數(shù)之間利用一個連接符 & 來區(qū)分。Post 請求有如下特性:數(shù)據(jù)是

23、放在 HTTP 主體中的,其組織方式不只一種,有 & 連接方式,也有分割 符方式,可隱藏參數(shù),傳遞大批數(shù)據(jù),比較方便。通過以上的說明,現(xiàn)在我們大致了解了什么時候用get什么時候用post方式了吧,對!當(dāng)我們在提交表單的時候我們通常用 post方式,當(dāng)我們要傳送一個較大的數(shù)據(jù)文件時,需要用post。當(dāng)傳遞的值只需用參數(shù)方 式(這個值不大于256KB)的時候,用get方式即可?,F(xiàn)在我們再看看通過URL發(fā)送請求時,get方式和post方式的區(qū)別。用下面的例子可以很容易的看到同樣的數(shù)據(jù)通過 GET和POST來發(fā)送的區(qū)別,發(fā)送的數(shù)據(jù)是 username=<三:GET 方式 , 瀏覽器鍵入

24、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-Encoding: gzip, deflateUser-Agent: Mozilla/4.0 (compatible;

25、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, */*Accept-Language: zh-cnContent-Type: application/x-www-

26、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ū)別就是一個在 URL 請求里面附帶了表單參數(shù)和值 , 一個是在 HTTP 請求的消息實(shí)體中。 比較一下上面的兩段文字 , 我們會發(fā)現(xiàn) GET 方式把表單內(nèi)容放在前面的請求頭中 , 而

27、 POST 則把這 些 內(nèi) 容 放 在 請 求 的 主 體 中 了 , 同 時 POST 中 把 請 求 的 Content-Type 頭 設(shè) 置 為 application/x-www-form-urlencoded. 而發(fā)送的正文都是一樣的 , 可以這樣來構(gòu)造一個表單提交正文 :encodeURIComponent(arg1)=encodeURIComponent(value1)&encodeURIComponent(arg2)=encodeURICo mponent(value2)&注: encodeURIComponent 返回一個包含了 charstring 內(nèi)容的新的 String 對象( Unicode 格式), 所 有空格、標(biāo)點(diǎn)、重音符

溫馨提示

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

最新文檔

評論

0/150

提交評論