【问题标题】:Access XMLHttpRequest data in classic ASP在经典 ASP 中访问 XMLHttpRequest 数据
【发布时间】:2012-03-01 15:41:40
【问题描述】:

我在经典 ASP 和 XHR 上发现的大多数问题都是关于如何使用经典 ASP 创建和发送 XMLHttpRequest。就我而言,我想用经典的 ASP 读取 XHR 中发送的数据。

我对经典的 ASP 一点也不熟悉;我正在用 VBScript 编写(尽可能少的代码)。我已经使用 POST 作为方法向服务器发送了 XHR,并在 javascript 中使用 request.send(data)。

我现在如何访问服务器上的数据。我猜它存储在 Request 对象中的某个地方,但我找不到它或使它工作。数据是否存储在 Request.ServerVariables 中?还是我需要使用 BinaryRead 方法?

编辑:根据 AnthonyWJones 的评论,我没有指定数据格式。但我想我希望能够发送纯文本、JSON 或 x-www-form-urlencoded 数据。

【问题讨论】:

    标签: asp-classic xmlhttprequest


    【解决方案1】:

    如果您指出您实际发送的是哪种数据,那将会有所帮助。我假设您发布了一些 XML。在这种情况下,您可以使用 MSXML DOMDocument 加载方法。

      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 对象。

    【讨论】:

    • 哇。 12 年的 ASP,我从来不知道 Request 实现了 IStream :)
    • 感谢您的回答!如果我发送不同类型的数据,我想我会创建一个不同的对象?像 CreateObject(some_JSON_specification)?我在哪里可以找到 CreateObject() 函数的不同参数?
    【解决方案2】:

    除了完全正确的接受答案之外,您还可以设置:

    xml.validateOnParse = true
    

    或假,这取决于您的喜好。

    至于:

    “我在哪里可以找到 CreateObject() 函数的不同参数?”

    您可以创建许多不同的对象。这取决于您的服务器上安装了什么。就像您可能没有 .3.0 dom 文档一样。 Devguru 有一些内置对象的列表,例如文件系统、字典等:http://www.devguru.com/technologies/vbscript/13990.asp

    其他常见的是用于邮件的 CDONTS.Mail、strCat.Catter、ADODB.Recordset/Command、MSxml2.ServerXMLHttp、WScript.Shell、各种加密对象、来自 SoftArtisans 或 IPWorks 等的各种 3rd 方实用程序等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 2010-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多