在我的previous question中,我不小心发送了带有text/xml
Content-Type的令牌/值对,导致未发送任何内容。蒂姆·C(Tim C)对这个问题的见解非常有帮助。再次感谢,蒂姆!
回顾原始的发送代码,我现在意识到将ServerXMLHTTP
的Content-Type设置为text/xml
是最近的错误添加。我在问题中张贴的发送代码如下所示:
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
实际的发送代码实际上是:
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.send information
...在发送前不尝试设置Content-Type。
不幸的是,最初导致我寻求帮助的问题仍然存在。我的接收经典ASP页面看不到
ServerXMLHTTP
对象正在发布的信息。该信息不在请求对象的querystring
或form
数组中。无论我做什么,我都找不到信息,但是我知道它正在发送,因为当我将内容类型更改为application/x-www-form-urlencoded
时,我可以在request.form
数组中看到它。那么
MSXML2.ServerXMLHTTP
类的默认内容类型是什么?当发送类使用默认内容类型时,我的信息在哪里?
在此先感谢您的协助!和平,柯尔特·泰勒
最佳答案
如果POST的内容类型为“ application / x-www-form-urlencoded”,则ASP只会填充表单数组。通常,ServerXMLHTTP不会设置内容类型标头,因此,如果不手动设置,则不会发送任何内容类型标头。
例外情况是,您传递XML文档作为要发送的参数,在这种情况下,ServerXMLHTTP会将内容类型设置为“ text / xml; charset = UTF-8”。