访问经典ASP中的XMLHttpRequest数据

时间:2011-10-04 16:08:20

标签: asp-classic xmlhttprequest

我在经典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数据。

2 个答案:

答案 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等。