这个问题在这些论坛上被问过两次,但提供的答案对我不起作用。
问题是我有JSP页面正在返回并刷新少量输出。
我使用以下代码来读取输出:
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 3) {
alert(xmlhttp.responseText);
}
}
xmlhttp.open("POST", "download.jsp", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader('X-Requested-With', "XMLHttpRequest");
xmlhttp.send($('#submitDownloadForm').serialize());
在Firefox上运行正常,在此过程中我会收到3个警报。
但是,在基于Webkit的浏览器(如Chrome和Safari)上,我会收到第一个警报,但在此过程完成之前不会给出其他警报。
其他答案已经说过更改Content-Type:text/plain
或Content-Type:application/octet-stream
,但如果我这样做,readyState
会直接跳转到4,就像进程已立即完成一样。
我找不到任何解决办法。
任何帮助都非常感谢,提前感谢所有人。
答案 0 :(得分:0)
我在生成输出之前将以下代码添加到JSP文件中,这解决了基于Webkit的浏览器上的问题:
response.setContentType("application/octet-stream");
我现在每次刷新输出时都会收到更新。