我正在尝试使用经典ASP中的回调函数进行异步调用。这是我的代码:
Set objHTTP = CreateObject("Microsoft.XMLHTTP")
With objHTTP
.open "POST", base_url_crm & "contacts", True, login_crm, key_crm
.setRequestHeader "Content-Type", "application/json"
.setRequestHeader "Accept", "application/json"
.onreadystatechange = Check_state
.send json
End with
Set objHTTP = Nothing
Public Function Check_state
if objHTTP.ReadyState = 4 then
Response.Write "Finish"
end if
End Function
它返回此错误:
Type mismatch: 'onreadystatechange'
如何在异步调用结束后立即执行Check_state函数? 它必须是异步的(不想让我的用户等待)并且无法在javascript中执行此操作。
答案 0 :(得分:0)
您不能像在JavaScript中那样将事件绑定到函数,因为只需传递函数的名称就会立即调用它,返回其输出,而是将其分配。使用GetRef
函数绑定事件,如下所示:
Set objHTTP = CreateObject("Microsoft.XMLHTTP")
objHTTP.onreadystatechange = GetRef("Check_state")
See here有关GetRef
的文档。
答案 1 :(得分:0)
尝试使用状态而不是onreadystatechange,它会返回诸如200,404和500之类的值。