我在经典ASP和XHR上发现的大多数问题都是关于如何使用经典ASP创建和发送XMLHttpRequest。就我而言,我想用经典的ASP读取XHR中发送的数据。
我对熟悉的ASP并不熟悉;我在VBScript中写(尽可能少的代码)。我已经使用POST作为方法将一个XHR发送到服务器,并使用javascript中的request.send(data)。
我现在如何访问服务器上的数据。我猜它存储在Request -object中的某个地方,但我无法找到它或使它工作。数据是否存储在Request.ServerVariables中?或者我需要使用BinaryRead方法吗?
编辑:根据AnthonyWJones的评论,我没有指定数据格式。但我想我希望能够发送纯文本,JSON或x-www-form-urlencoded数据。
答案 0 :(得分:3)
如果您指出了实际发送的数据类型,那会有所帮助。我假设你发布了一些XML。在这种情况下,您可以使用MSXML DOMDocument Load方法。
Dim xml: Set xml = CreateObject("MSXML2.DOMDocument.3.0")
xml.async = False
xml.SetProperty "SelectionLanguage", "XPath"
xml.Load Request
请注意,将ASP Request对象直接传递给Load
方法。 ASP Request对象没有很好地记录,它实现了标准的COM IStream
接口,因此可以从IStream
(如DOMDocument`)读取任何可以传递ASP Request对象的数据。
答案 1 :(得分:2)
除了接受的答案(完全正确)之外,您还可以设置:
xml.validateOnParse = true
或者错误,取决于您的偏好。
至于:
“我在哪里可以找到CreateObject()函数的不同参数?”
您可以创建许多不同的对象。这取决于您的服务器上安装的内容。就像你可能没有.3.0 dom文档一样。 Devguru有一些内置对象的列表,如文件系统,字典等:http://www.devguru.com/technologies/vbscript/13990.asp。
其他常见的是CDONTS.Mail for mail,strCat.Catter,ADODB.Recordset / Command,MSxml2.ServerXMLHttp,WScript.Shell,各种加密对象,各种第三方实用程序,如SoftArtisans或IPWorks等。