ie 8保留の問題を覚えます


問題は、私のバックグラウンドservletプログラムに異常が発生した場合、異常をキャプチャしてユーザーに友好的な情報を返したいと思っています.ie 8の下でF 12を通じて「ネットワーク」-「キャプチャ」をデバッグして、要求の状態が「保留」であることを発見し、ブラウザが停止しました.
バックグラウンドコード:
    
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) {
	log.error(e.getMessage(), e.getCause());
        PrintWriter writer;
		try {
			writer = response.getWriter();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String errorText = ""; 
            // some code ...
            writer.println("{\"success\":\"N\",\"msg\":\"" + errorText + "\"}");
            writer.flush();
		} catch (IOException e1) {
			log.error("    ,     : " + e1.getMessage(), e1.getCause());
		}

フロントコード:
//   ajax  
$('#form_upload').ajaxSubmit({
	       url: url,
				type: 'post',
				//dataType: 'json',
				dataType: 'text',
				async: false,
				success: function(dataText) {
				    //some code...
				},
				error: function(XMLHttpRequest, textStatus, errorThrown) {
				},
				complete: function(xhr) {
				}
			});

この機能はexcleファイルをインポートしたもので、ie 10、火狐の下では問題ありませんが、ie 8 9はいずれもだめで、最初はjsライブラリの問題だと思っていましたが、jquery、jquery formのバージョンをすべて変えてしまい、問題は解決しませんでした.またie 8のiframeの問題だと疑って、長い間いたずらをしていたのか、それとも間違っていたのか.最後にieのF 12を通じて発見して、応答は内容があって、ヘッダがなくて、もとはサーバーが応答ヘッダを書いていないので、ie 8が無限に掛けて永遠に入ります.
解決:servletコードに次の3つの文を追加すればいいです.

        response.setStatus(200);
        response.setContentType("text/html;charset=UTF-8");
        response.setCharacterEncoding("UTF-8");