本帖最後由 michael3636 於 2015-4-27 19:52 編輯 PART 2 我在PART 1 裡面提到過,無論是客戶端請求還是服務器反饋,內容都分2個部分:
開發工具準備:XHR不是我們想怎麼寫就怎麼寫的,要使用它的所有功能,我們離不開輔助工具
以下為本帖隱藏內容 ============================== 好了,鋪墊基本鋪好了..終於可以進入主題了 創建XHR對象 XHR有2種使用方式,對象或者API,API是沒辦法了,畢竟我們玩的是按鍵精靈不是C,所以我們講對象方式使用XHR.在window裡,我們可以創建很多種形式的XHR對象,羅列如下: //http是變量名,大家隨意 Set http = CreateObject("Microsoft.XMLDOM") //太老了,應該廢棄使用,win95-現在 Set http = CreateObject("Msxml2.XMLHTTP.6.0") //兼容XP-現在 Set http = CreateObject("Msxml2.XMLHTTP") //相當於.3.0版本,如果出現.6.0版本無法創建的情況用這個(出現在沒打升級補丁包的XP) Set http = CreateObject("msxml2.Serverxmlhttp.6.0") //功能上來說比上上面的強 Set http = CreateObject("msxml2.Serverxmlhttp") //相當於.3.0版本,如果出現.6.0版本無法創建的情況用這個(出現在沒打升級補丁包的XP) Set http = CreateObject("WinHttp.WinHttpRequest.5.1")//最牛組建,強烈推薦,使用上幾乎功能限制(xp-現在) //補充一點:其實看名字就知道了"WinHttp.WinHttpRequest.5.1"跟上面幾個不是一夥的,事實也是,但是我不打算就此進行展開說明. //從功能上來說,它們是差不多的,強弱之分而已,所以我主觀的把它們歸為一類,畢竟我的目的是讓大家入個門而已 不用最合適的,只用最牛的,這個估計是大多數人的風格,不幸的是,俺也是,所以,我們著重講"WinHttp.WinHttpRequest.5.1",間或的可能會提到"Msxml2.XMLHTTP.6.0",因為它有前者沒有的一個特點(注意我的用詞:是特點而不是優點) 畫外音 很多人可能對對象這個概念不熟,我稍微補充一下,對象實例的賦值,必須加關鍵字"SET",當我們用完這個對象,想廢棄了.只需要一句代碼 Set 對象變量名=Nothing ==============================
以下為本帖隱藏內容 ============================== 問題解析: 為啥我的在瀏覽器看到的綜合版塊的網址是:"http://bbs./forum-17-1.html"跟你的不一樣啊 因為你沒登陸賬號,我登陸了,所以看到的不一樣,其實沒啥區別,按鍵論壇服務器啟用了URL rewrite功能而其,本質是把查詢網址的鏈接變成上看去像個靜態的鏈接地址,至於為啥要這樣,原因很簡單,百度谷歌什麼的搜索引擎,它們不喜歡帶著"?"字符的網址,靜態網址可以讓我們在百度搜索的時候搜到安檢論壇,而且排名靠前 為啥open方法第一個參數是"GET",啥意思 這個XHR的請求方式,http協議有很多請求方式,我列出我們最常用的幾種 GET:瀏覽器地址欄你出入網址回車就是"GET"方式提交的,一般用於最常規的應用,get的網址我們可以放到收藏夾.GET是可以帶請求內容的,但是長度是有限制的,網址是不能無現長的 POST這裡才會有post,僅僅是種http的請求方式而已,好好的XHR就被叫成POST了,至於麼?必須正名)一般用於我們向服務器提交數據,優點是遞交的數據我們是看不到的,也就是說,get方式遞交的數據在瀏覽器網址欄裡能看到,post是看不到的,比較安全,最大的好處是,post遞交數據是沒有長度限制的,你可以post 5M的文章,get肯定是不行的,,因為文本太長了,所以賬號密碼登陸此類的操作我們都是用post的. "HEAD":不常用,但是基本所有服務器都支持,意思是,我只要你返回頭部,不需要返回內容,一般在實際使用用,這種方式用來驗證代理服務器是否可用,我能看到你返回的頭部說明內容我也能看到.說明代理能用,為啥不用GET或者post驗證呢?head返回數據少速度快啊啊,..我只要證明通不通就行了嘛,還有個用處就是我們能得到服務器時間,適合做網絡時間驗證.詳見PART 1 http.responsetext是什麼東東? 這個是XHR對象的一個屬性,當我們請求完成後,服務器返回給我們了數據,需要什麼格式的,例子代碼是我們需要網頁文本所以用XHR對象.responsetext,如果我們請求的是個圖片呢?或則是mp3什麼的,,,非文本我們得用XHR對象.responsebody得到數據.當然還有其他得,但是在按鍵,我們只要知曉這2種就行了 補充知識:關於網址 有些URL帶有"?",比如我們代碼裡的http://bbs./forum.php?mod=forumdisplay&fid=17,其實嚴格說它是網址是錯誤的,"?"前面的才是網址,後面的是請求的參數,只不過大家都這麼叫.叫習慣了而已 在很多情況下(注意是很多不是絕對):"GET"方式的"http://bbs./forum.php?mod=forumdisplay&fid=17",相當於,POST帶著"mod=forumdisplay&fid=17"內容向"http://bbs./forum.php"提交數據,也就是說,在很多情況下.GET和POST是可以互換著來玩的,注意是很多!!不是絕對,不是所有!!! ============================== 那要是沒"?"呢?這不是多問麼,那不就是POST帶著""(空內容)去網址提交數據麼.....
|
|