1

这个问题在这些论坛上被问过两次,但提供的答案对我不起作用。

问题是我的 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)上,我会收到第一个警报,但在该过程完成之前不会收到其他 2 个警报。

其他答案说更改Content-Type:text/plainor Content-Type:application/octet-stream,但如果我这样做,则readyState直接跳转到 4 ,就好像该过程已立即完成一样。

我找不到任何解决方案。

非常感谢任何帮助,在此先感谢大家。

4

1 回答 1

0

我在 JSP 文件生成输出之前添加了以下代码,这解决了基于 Webkit 的浏览器上的问题:

response.setContentType("application/octet-stream");

我现在每次刷新输出时都会获取更新。

于 2012-12-25T01:55:08.000 回答