Thực tế có nhiều ví dụ và tôi đã sử dụng một trong số chúng. Nhưng nó hoạt động không đồng bộ, ý tôi là nó không đợi hàm mà tôi gọi để kết thúc.Cách gọi dịch vụ web bằng cách sử dụng vbscript (đồng bộ)?
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
Tôi gọi hàm ProcessSend trong hàm javascript. Nó kết nối với webservice và trả về biến "response". Nhưng hàm javascript của tôi không chờ kết quả hàm ProcessSend. Tôi làm cách nào để đồng bộ hóa?
Bạn có đang ở một trình duyệt hoặc trên Windows Scripting Host? Nếu bạn đang ở trong một trình duyệt, tại sao bạn sử dụng một nửa JavaScript, một nửa VBScript? – Tomalak