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()
%>
結果畫面
畫面上是編碼後結果,彈出畫面是回傳結果,正常無亂碼,有此可證POST會自動幫我們解碼,真是貼心阿 !但輸出要記得指定網頁編碼,這樣就可以萬無一失了^^
結語
想想這麼簡單,居然搞了我4個小時,人在急的時候,真的會缺乏判斷力, 希望這對有看得此篇的人有所幫助^^
Louis的標籤: vbscript