【Browser Side】
用xmlhttp控件,可以以get或者post方式向server请求页面。"Implement Script Callback Framework in ASP.NET 1.x"中,Elvin Cheng是这样写client side的javascript代码的:
if (pageUrl.length + postData.length + 1 > 2067)
{
xmlRequest.open("POST", pageUrl, false);
xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlRequest.send(postData);
}
else
{
if (pageUrl.indexOf("?") != -1)
xmlRequest.open("GET", pageUrl + "&" + postData, false);
else
xmlRequest.open("GET", pageUrl + "?" + postData, false);
xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlRequest.send();
}
【Server Side】
一、
以get方式,信息只能通过Query String传递,server端获取是简单的,从Request.QueryString里可以得到所有的Key和Value。
二、
以post,则稍稍复杂。
二之甲、如果post一个String(例如Query String太长的时候),那很简单,Request.Form就类似get方式中的Request.QueryString;
二之乙、如果post一个xml对象,那么需要:
'Check that something has been posted
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
'Check that an XMLHTTP object has been posted
If Request.ServerVariables("CONTENT_TYPE") <> "application/x-www-form-urlencoded" Then
'initialise an XML DOM object
Set oXMLDOM = Server.CreateObject("MSXML2.DOMDocument")
oXMLDOM.resolveExternals=False
oXMLDOM.validateOnParse=False
oXMLDOM.async=False
'load the request data into XML DOM
Call oXMLDOM.load(Request)
'Do something with XML DOM here
'***************************
End If
End If
相关msdn链接
http://support.microsoft.com/kb/290591/EN-US/
How To Submit Form Data by Using XMLHTTP or ServerXMLHTTP Object
http://support.microsoft.com/kb/290761/EN-US/
Frequently asked questions about ServerXMLHTTP