程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> ASP利用XMLHTTP實現表單提交以及cookies的發送的代碼

ASP利用XMLHTTP實現表單提交以及cookies的發送的代碼

編輯:關於ASP編程
確實,如果在原網站如果存在表單提交或cookies的驗證,對於ASP來說,不使用基於SOCKET的組件就難以完成,其實,XMLHTTP的另外兩個方法被我們忽略了,而這正是問題的關鍵。

下面首先來說說這個方法 

1。.send() 
       由於流行的小偷是使用的GET而不是POST來傳送數據,所以很多人忽略了這個方法,而使用SEND發送數據也很簡單,就是SEND("內容"),可是, 

       發送表單就不是這麼簡單,因為你發送的表單如果是中文的話,就要牽扯到編碼的問題了。 

       首先,你在OPEN 時要確定是用POST 即 .open("POST",地址,是否異步) 。

       然後,在SEND裡面加上你表單的內容,比如說,你要提交的表單有3個表單域,分別是A,B,C,對應的值分別是1,2,3,那麼,你在SEND裡這樣寫就可以提交表單了,.send("A=1&B=2&C=3"),怎麼樣,很簡單吧,是不是沒想到呢?但是別高興的太早了,我前面說到了,如果表單的值是中文的話,數據傳輸的就會出錯了。這裡我們借助一個函數escape(),熟悉JAVASCRIPT的朋友都應該知道這個函數的作用了,現在VBSCRIPT同樣支持這個函數。.send("A=escape('值1')&B=escape('值2')&C=escape('值3')") 。

2。.setRequestHeader() 
       接著上面的所說,你的數據send出去了,對方卻不會接收到,為什麼了,其實,那是因為你的HTTP頭少了一個東西,然後用這個函數把加上去就可以了,具體就是.setRequestHeader("CONTENT-TYPE","application/x-www-form-urlencoded"), 告訴對方你是提交了一個urlencode編碼的表單。 

       好的,說完了表單的提交來說怎麼傳送cookies。

       其實傳送cookies也很簡單了,同樣利用這個函數在HTTP頭裡添加東西,比如,我當前在落伍的cookies是 
cdb_sid=ybBiK0; cdb_cookietime=315360000; cdb_oldtopics=D869008D; cdb_visitedfid=1D45; cdb_auth=AQYHXVFDGERdsggVQA1VYUgxQDwFVV1dUAlwFAFRXVwU%2FbAIJB1lUCg; cdb_fid45=1113370145 
       現在我要發送這個cookies就直接是 .setRequestHeader("Cookie","cdb_sid=ybBiK0; cdb_cookietime=315360000; cdb_oldtopics=D869008D; cdb_visitedfid=1D45; cdb_auth=AQYHXVFDGERdsggVQA1VYUgxQDwFVV1dUAlwFAFRXVwU%2FbAIJB1lUCg; cdb_fid45=1113370145") 
       當然,有些網站頁面有頁面判斷功能,這個也不難,就是.setRequestHeader("Referer","來路的絕對地址") 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved