2016-06-23 13 views
1

従来のASPではコールバック関数を使用して非同期呼び出しを作成しようとしています。これは私のコードです:従来のASP Microsoft.XMLHTTP onreadystatechange

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

などの値を返します。サーバーサイドスクリプトがコールバックを待つことは何もありません。 'send'部分が終了すると、ページは終了します。 –

答えて

0

JavaScriptのようにイベントをバインドすることはできません。関数の名前を渡すだけですぐに呼び出され、出力が返され、代わりに代入されるためです。 GetRef上のドキュメントについて

​​

See here:そうのようなイベントをバインドするGetRef機能を使用してください。

+0

GetRefで「プロシージャコールが無効です」というエラーが表示されます。 – Onaiggac

0

は、ステータスの代わりに、onreadystatechangeにを使用してみてください、それはあなたが(あなたが正しく割り当てられたコールバックを持っていても)このように非同期呼び出しを使用することはできませんように200、404および500

+0

ステータスを確認するためにループをコーディングする必要がある場合は、非同期ではありません。 – Onaiggac

関連する問題