2
我正在做的項目我試圖做一個異步XMLHTTP調用。 我使用下面的代碼:VBscript異步XMLHttp調用
soapmessage = _
"<?xml version='1.0' encoding='utf-8'?>"& vbcrlf& vbcrlf & _
"<soap:Envelope"& vbcrlf & _
" xmlns:xsi="&chr(34)&"http://www.w3.org/2001/XMLSchema-instance"&chr(34)&
vbcrlf & _
" xmlns:xsd="&chr(34)&"http://www.w3.org/2001/XMLSchema"&chr(34)& vbcrlf & _
" xmlns:soap="&chr(34)&"http://www.w3.org/2003/05/soap-
envelope"&chr(34)&">"& vbcrlf & _
" <soap:Body>"& vbcrlf & _
"<notification>"& vbcrlf & _
" <action>Action</action>"& vbcrlf & _
" <objectid>333333</objectid>"& vbcrlf & _
"</notification>"& vbcrlf & _
" </soap:Body>" & vbcrlf & _
" </soap:Envelope>"
strEndpoint = "**********"
Set xmlhttp = CreateObject("MSXML2.SERVERXMLHTTP.6.0")
xmlhttp.open "POST", strEndpoint, True
xmlhttp.OnReadyStateChange = doHttpOnReadyStateChange()
xmlhttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
xmlhttp.Send soapmessage
Function doHttpOnReadyStateChange()
If xmlhttp.ReadyState = 4 Then
'do something
End If
End Function
當我嘗試執行此我得到如下:
test.vbs(19, 1) Microsoft VBScript runtime error: Type mismatch: 'xmlhttp.OnReadyStateChange'
任何想法我可以做錯了什麼? 這是我第一次嘗試異步呼叫,所以我有點困惑與OnReadyStateChange
用GetRef(「」)在函數名周圍試了一下。沒有更多的錯誤,但也沒有任何反應..把一些調試代碼在那裏得到一個msgbox或任何東西,但似乎從來沒有進入該功能(即使外面的「如果」).. –
@DirkR。奇怪,你嘗試過一個'Sub'程序而不是'Function',因爲你沒有返回任何東西,雖然看不出它有什麼區別。這幾乎就像'OnReadyStateChange'事件沒有觸發。 – Lankymart
剛剛嘗試過一個小組,但結果相同..它看起來好像不是在燃燒。我試過使用一個普通的MSXML2.XMLHTTP.6.0對象而不是服務器,但也沒有任何東西..真的難倒了! –