ie 8保留の問題を覚えます
問題は、私のバックグラウンドservletプログラムに異常が発生した場合、異常をキャプチャしてユーザーに友好的な情報を返したいと思っています.ie 8の下でF 12を通じて「ネットワーク」-「キャプチャ」をデバッグして、要求の状態が「保留」であることを発見し、ブラウザが停止しました.
バックグラウンドコード:
フロントコード:
この機能はexcleファイルをインポートしたもので、ie 10、火狐の下では問題ありませんが、ie 8 9はいずれもだめで、最初はjsライブラリの問題だと思っていましたが、jquery、jquery formのバージョンをすべて変えてしまい、問題は解決しませんでした.またie 8のiframeの問題だと疑って、長い間いたずらをしていたのか、それとも間違っていたのか.最後にieのF 12を通じて発見して、応答は内容があって、ヘッダがなくて、もとはサーバーが応答ヘッダを書いていないので、ie 8が無限に掛けて永遠に入ります.
解決:servletコードに次の3つの文を追加すればいいです.
バックグラウンドコード:
@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");