0

私は、バックハンドから cgi-bin を呼び出す Web アプリに取り組んでいます。そのために ajax 要求を使用します。今、cgi 応答が到着するまで待ちたいシナリオが 1 つ必要です。実際には、1 つのフォーム アクションが呼び出されます。もCGです。これでタスクを実行できるようになりましたが、メソッドが最初に戻り、cgi 応答が後で受信されます。cgi 応答アクションに応じて呼び出す必要があります。出来ますか ?助けてください...前もって感謝します...これが私が使用しているコードです:-

var flag = "";
if (xmlHttpReq.readyState == 0){        
        xmlHttpReq.open('POST', destinationURL, true);
        xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xmlHttpReq.onreadystatechange = function() {
            if (xmlHttpReq.readyState == 4) {                
                if(xmlHttpReq.responseText == "OK"){
                    flag = true;
                }
                else{        
                    flag = false;
                }
            }            
        }
        xmlHttpReq.send();

    }
    return flag;

ここで、フラグが true の場合にのみフォーム アクションを呼び出し、ボタンの onclick イベントで type = "submit" でこの関数を呼び出します。

4

1 に答える 1

0

最初の応答をグローバル変数に保持し、2 番目の呼び出しで最初の応答に依存している場合は、ただ待ちます...

私はクロスブラウザの問題が嫌いなので、jQueryバージョンは次のとおりです。

$("form").submit(function() {

    // let's get what we need
    $.ajax({
        url: destinationURL,
        context: document.body,
        async: false, // you want a synchronous call
        success: function(){
          // done
        },
        error: function() { alert('something went wrong...'); }
    });

    // Continue your work, the line below will only be processed
    //   after the $.ajax call is made

});
于 2011-09-09T08:08:31.957 に答える