我正在开发一个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”。
答案 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
});