我正在将ASP网页的两面写到ASP网页对话中,其中原始网页将信息推送到接收网页,接收网页然后处理它并发回响应。原始网页必须使用以下代码开始讨论:
url = "www.receivingwebsite.com\asp\receivingwebpage.asp
information = "UserName=Colt&PassWord=Taylor&Data=100"
Set xmlhttp = server.Createobject("MSXML2.ServerXMLHTTP")
xmlhttp.Open "POST", url, false
xmlhttp.setRequestHeader "Content-Type", "text/xml"
xmlhttp.send information
...然后以某种方式接收页面中的ASP代码必须能够看到发送的信息。我已经尝试了我能想到的一切。该信息不在请求对象的querystring
或表单数组中(因为内容类型为text/xml
)并且我已尝试通过其{{domdocument
将整个请求对象传递给load()
1}}和/或loadxml()
方法。
无论我做什么,我都找不到相关信息,但我知道它正在发送,因为当我将内容类型更改为application/x-www-form-urlencoded
时,我可以在request.form
数组中看到它
当内容类型为text/xml
时,我的信息在哪里?
答案 0 :(得分:6)
当你将content-type设置为“text / xml”时,你真的需要将信息作为XML字符串发送,而不是名称 - 值列表。
url = "www.receivingwebsite.com\asp\receivingwebpage.asp"
information = "<Send><UserName>Colt</UserName><PassWord>Taylor</PassWord><Data>100</Data></Send>"
Set xmlhttp = server.Createobject("MSXML2.ServerXMLHTTP")
xmlhttp.Open "POST", url, false
xmlhttp.setRequestHeader "Content-Type", "text/xml"
xmlhttp.send information
然后,在接收ASP页面中,您将按如下方式捕获XML:
Dim xmlDoc
Dim userName
set xmlDoc=Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load(Request)
userName = xmlDoc.documentElement.selectSingleNode("UserName").firstChild.nodeValue