XMLHTTP经典的asp Post

时间:2011-07-15 15:41:34

标签: asp-classic

我正在使用Classic ASP Web应用程序。这里的目标是在没有客户端等待响应的情况下进行耗时的数据处理。这导致使用xmlhttp对象异步发布。这是应该发布到所需URL的代码段。我可以在键入url时直接点击此页面,并且所有数据处理都正常,但是我无法在我的vbscript中启动此发送请求。我选择了VBscript,因为我正在进行验证并确保数据在xmlhttp发布之前与在javascript中调用之前所需的格式。我现在在这里被挤了一段时间,真的很感激你的帮助。

Dim objXMLHTTP
Set objXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
objXMLHTTP.Open "POST", "myurl", true
objXMLHTTP.Send
Set objXMLHTTP = nothing

-aFellowDevInNeed

1 个答案:

答案 0 :(得分:7)

如果您正在执行异步操作,则需要委托函数来处理请求的状态更改。当readyState为4时,请求被发送到服务器并收到完整响应。我们还检查以确保请求是HTTP 200 OK;否则,可能存在错误,或者我们收到了服务器的部分响应:

Dim objXML
Function objXML_onreadystatechange()
    If (objXML.readyState = 4) Then
        If (objXML.status = 200) Then
            Response.Write(objXML.responseText)
            Set objXML = Nothing
        End If
    End If
End Function

Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")
Call objXML.open("POST", "http://localhost/test.asp", True)
objXML.onreadystatechange = GetRef("objXML_onreadystatechange")
objXML.send()

这就是说,在Classic ASP中进行异步调用不是100%。如果用户通过点击“停止”,“刷新”或关闭其浏览器来中止请求,则该请求将被视为已中止。

http://msdn.microsoft.com/en-us/library/ms535874(v=vs.85).aspx