VBScript上ajax傳輸完整攻略

VBScript上ajax傳輸完整攻略

前言

ajax技巧,真是我的最愛,但只要是中文就是我的痛,亂碼不停湧出來, 這次處理好了,小弟本人我,趕緊發揮學習精神,筆記寫下來,跟大家分享。

第一步我丟你解

我的網頁是big5而Ajax是使用傳輸預設為unicode,這點是讓我卡關第一個點 解決方法如下

丟的程式碼

sData ="INSERTTYPE=I5&CODESEND={0}&DEPT_NAME={1}&WORDSEND={2}&PRIM_UNIT_FK1={3}&SUBJECTS={4}&CREATEDATE={5}"
sData = formatStr(sData,array(escape("測試001"), _
                              escape("測試002"), _
							  escape("測試003"), _
							  escape("測試004"), _
							  escape("努力作筆記,遇到困難沒關西,加油"), _
							  escape("2011/11/01")))
document.getElementById("div").innerHTML=sData
str = jVBPost("toPost.asp",sData,false)
alert(str)

function jVBPost(sUrl,dataStr,bSync) '網址,傳送資料串
	set xmlHttp =CreateObject("Microsoft.XMLHTTP")
	xmlHttp.open "POST",sUrl,bSync 'false同步true非同步
	xmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
	xmlHttp.send dataStr
	jVBPost =xmlHttp.responseText
end function
</script>

接的程式碼

sData ="INSERTTYPE=I5&CODESEND={0}&DEPT_NAME={1}&WORDSEND={2}&PRIM_UNIT_FK1={3}&SUBJECTS={4}&CREATEDATE={5}"
CODESEND = request("CODESEND")
DEPT_NAME = request("DEPT_NAME")
WORDSEND = request("WORDSEND")
PRIM_UNIT_FK1 = request("PRIM_UNIT_FK1")
SUBJECTS = request("SUBJECTS")
CREATEDATE = request("CREATEDATE")
sData =formatStr(sData,array(CODESEND,DEPT_NAME,WORDSEND,PRIM_UNIT_FK1,SUBJECTS,CREATEDATE))
response.Charset="big5" '這很重要不然回傳還是會產生亂碼
Response.Write(sData)
Response.End()    
%>

結果畫面

001

畫面上是編碼後結果,彈出畫面是回傳結果,正常無亂碼,有此可證POST會自動幫我們解碼,真是貼心阿 !但輸出要記得指定網頁編碼,這樣就可以萬無一失了^^

結語

想想這麼簡單,居然搞了我4個小時,人在急的時候,真的會缺乏判斷力, 希望這對有看得此篇的人有所幫助^^

Louis的標籤: