Eigentlich gibt es viele Beispiele und ich habe eines davon benutzt. Aber es funktioniert asynchron, ich meine, es wartet nicht auf die Funktion, die ich aufgerufen habe, um zu beenden.Wie Web-Service mit VBScript (synchron) aufrufen?
function ProcessSend()
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP.4.0")
Set oXMLDoc = CreateObject("MSXML2.DOMDocument")
oXMLHTTP.onreadystatechange = getRef("HandleStateChange")
strEnvelope = "callNo="&callNo&"&exp="&exp
call oXMLHTTP.open("POST","http://localhost:11883/ServiceCall.asmx/"&posFirm,true)
call oXMLHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
call oXMLHTTP.send(strEnvelope)
end function
Sub HandleStateChange
if(oXMLHTTP.readyState = 4) then
dim szResponse: szResponse = oXMLHTTP.responseText
call oXMLDoc.loadXML(szResponse)
if(oXMLDoc.parseError.errorCode <> 0) then
'call msgbox("ERROR")
response = oXMLHTTP.responseText&" "&oXMLDoc.parseError.reason
'call msgbox(oXMLDoc.parseError.reason)
else
response = oXMLDoc.getElementsByTagName("string")(0).childNodes(0).text
end if
end if
End Sub
Ich rufe ProcessSend-Funktion in einer JavaScript-Funktion. Es verbindet sich mit dem Webservice und gibt die Variable "response" zurück. Aber meine Javascript-Funktion wartet nicht auf das Ergebnis der ProcessSend-Funktion. Wie kann ich es synchron machen?
Sind Sie in einem Browser oder auf Windows Scripting Gastgeber? Wenn Sie in einem Browser sind, warum verwenden Sie halb JavaScript, halb VBScript? – Tomalak