HTMLUNIT,等待表单回答时获取Ajax答案

时间:2017-03-19 12:38:05

标签: java ajax htmlunit

我从表单

向服务器发送文件

onSubmit事件会启动setInterval,它会向服务器询问上传的文件百分比,并使用JQuery显示它。

单击带有HtmlUnit(submit)的submitButton.click()按钮时,它会一直等待已回答的页面。所以我看不出阿贾克斯得到了什么。

NicelyResynchronizingAjaxController()不起作用。
waitForBackgroundJavaScript()不起作用。 我在click()之前创建了一个子线程来尝试检查ajax正在接收什么,但它看起来也在等待表单操作。

我怎么能同时得到两个答案?有任何想法,知道我需要等多久?

提前谢谢

既然你要求它,但实际代码非常复杂,我将写一个简单的例子。

这是主要的HTML代码

<html>
<body>
<script>
function Upload() {
        setInterval("waitProcess('x')", 2500);
}
function waitProcess(uid) {
    $.get('x2.php?id='+uid, function(data) {
      $("#t").val( $("#t").val() + "\n" + data );
    });
}
</script>
<form action="x3.php" onSubmit="Upload();">
<input type="file" name="file">
<input id="boton" type="submit" value="Transfer it" />
</form>
<textarea id="t"></textarea>
</body>
</html>

如您所见,文件按表单上传。我使用异步AJAX请求来查看已上载文件的百分比。我只是使用<textarea>来显示示例答案。

我想要的HtmlUnit代码是继续阅读WebClient中的当前HTML以查看是否已通过Ajax请求更新<textarea>。但是在表单上传文件时会阻止WebClient

1 个答案:

答案 0 :(得分:0)

我担心您遇到HtmlUnit的问题。 Asnc请求目前并不是真正的异步。 请为此开一个问题;如果可能的话,提供一些示例代码。

顺便说一句:是表单提交完成的文件上传,还是异步请求?