1

この質問は、これらのフォーラムで 2 回行われましたが、提供された回答がうまくいきません。

問題は、少量の出力を返したりフラッシュしたりする 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 つのアラートが表示されます。

ただし、Chrome や Safari などの Webkit ベースのブラウザーでは、最初のアラートは表示されますが、プロセスが完了するまで他の 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 に答える