2016-06-23 4 views
1

기존 ASP에서 콜백 함수를 사용하여 비동기 호출을 수행하려고합니다. 바로 비동기 호출이 종료 된 후에클래식 ASP Microsoft.XMLHTTP onreadystatechange

Type mismatch: 'onreadystatechange' 

가 어떻게이 Check_state 기능을 실행할 수 있습니다 그것이 오류를 반환

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 

: 이것은 내 코드? 비동기 (내 사용자를 기다리게하지 말아야 함) 여야하며 javascript에서이 작업을 수행 할 수 없습니다.

+0

으로 값을 반환합니다. 콜백을 기다리는 서버 측 스크립트를 유지할 수있는 방법은 없습니다.'send' 부분이 끝나면 페이지가 종료됩니다. –

답변

0

JavaScript에서와 같이 이벤트를 함수에 바인딩 할 수 없습니다. 함수의 이름을 전달하면 즉시 호출하고 출력을 반환하므로 대신 할당됩니다. 과 같이 이벤트를 바인딩 할 GetRef 기능을 사용

Set objHTTP = CreateObject("Microsoft.XMLHTTP") 
objHTTP.onreadystatechange = GetRef("Check_state") 

See here을 문서에 대한 GetRef에. 대신을 onreadystatechange의 상태를 사용하여

+0

GetRef에서 "잘못된 프로 시저 호출"오류가 나타납니다. – Onaiggac

0

시도, 그것은 (당신이 제대로 할당 된 콜백을 가지고 경우에도) 당신은이 같은 비동기 호출을 사용할 수없는 등 (200), (404) 및 (500)

+0

상태를 확인하기 위해 루프를 코딩해야한다면 비동기가되지 않습니다. – Onaiggac