基于IIS7 web服务器,进行脚本调试。
客户端JS,使用xmlhttprequest与服务器进行数据交互。JS脚本中,xmlhttprequest采用sync模式,post数据给服务器,部分代码如下:
function create_xhr()
{
if(window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
else
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
if(null == xmlhttp) throw new Error("create xhr error");
}
function process()
{
try
{
create_xhr();
xmlhttp.open("POST","process.aspx?cmd=up", false);
xmlhttp.send("hello morning, nice to meet you.");
document.write(xmlhttp.responseText);
}
catch(e)
{
document.write(e.message);
}
}
服务器端采用asp.net VBscript,部分代码如下:
Dim content content = "hello morning, nice to meet you." Dim InStream As System.io.Stream Dim Len, iRead As Integer InStream = Request.InputStream Len = CInt(InStream.Length) Dim ByteArray(Len) As Byte Trace.Write("Len", Len) iRead = InStream.Read(ByteArray, 0, Len) Dim c As String c = System.Text.Encoding.Default.GetString(ByteArray) c = Left(c, Len) If c = content Then response.write(c) Else response.write("fail") End If
aspx代码中,将字节数据转换为string类型,当调用System.Text.Encoding.Default.GetString(ByteArray)后,得到的字符串c,其长度实际上会多一个字节,这个多余的字节将出现的c的末尾,可能是由于编码转换时多余一个字符,因此需要将它去掉,以得到正确的结果,这里采用Left(c,Len).