需要停止执行javascript方法,直到收到cgi响应

时间:2011-09-09 08:03:30

标签: javascript html forms cgi cgi-bin

我正在开发一个Web应用程序,我从反手调用cgi-bin。我使用ajax请求。现在我想要一个场景,我想等到cgi响应到达。实际上是一个表单动作被称为也是一个cgi。 现在我能够完成任务,但方法首先返回,后来收到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”。

1 个答案:

答案 0 :(得分:0)

将第一个响应保留在全局变量中,对于第二个调用,如果它依赖于第一个响应,则只需等待......

由于我讨厌跨浏览器问题,这里是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

});