遇到一个很奇怪的现象,不得其解。
有两个页面,a.htm是发送数据并且马上显示返回的数据,b.asp用来接收数据并返回xml数据。可是返回的值跟传过去的不一样啊(空格都没了)?这是为啥?有什么办法吗?(不能用数据岛的办法)
a.htm:
1<script language="vbscript">
2'这个函数用于将字串unicode编码
3Function URLEncoding(vstrIn)
4strReturn = ""
5For i = 1 To Len(vstrIn)
6ThisChr = Mid(vStrIn,i,1)
7If Abs(Asc(ThisChr)) < &HFF Then
8strReturn = strReturn & ThisChr
9Else
10innerCode = Asc(ThisChr)
11If innerCode < 0 Then
12innerCode = innerCode + &H10000
13End If
14Hight8 = (innerCode And &HFF00)\ &HFF
15Low8 = innerCode And &HFF
16strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
17End If
18Next
19URLEncoding = strReturn
20End Function
21</script>
1<script language="javascript">
2var sS="M=1 2&N=2 2"
3sS=URLEncoding(sS)
4var oSend=new ActiveXObject("Microsoft.XMLHTTP");
5oSend.open("POST","b.asp",false);
6oSend.setRequestHeader("Content-Length",sS.length);
7oSend.setRequestHeader("CONTENT-TYPE","application/x-www-form-urlencoded");
8oSend.send(sS);
9
10var oDom=new ActiveXObject("Microsoft.XMLDOM");
11oDom.async=false;
12body=oSend.responseXML.xml;
13alert(body) //就是这里了,得到的xml会是<M>12</M><N>22</N>
14//但是我传过去的是M=1 2 N=2 2 呀(有空格)
15</script>
b.asp:
1Response.ContentType="text/xml"
2M=Request.Form ("M")
3N=request.form("N")
1<msg>
2<m>```
3=M
4```</m>
5<n>```
6=N
7```</n>
8</msg>
----------------------------------------
加个escape转化为unicode就可以了
var m = escape("1 2")
var n = escape("2 2")
var sS="M="+m+"&N="+n