您的位置:首页 > 其它

记ie8 挂起问题

2014-07-28 14:45 148 查看
问题现象是这样的:我的后台servlet程序发生异常时,我想捕获异常返回给用户友好的信息,在ie8下通过F12调试“网络”-“捕获”发现请求的状态是“挂起”,然后浏览器就挂了。

后台代码:

@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文件的,在ie10、火狐下没问题,但是ie8 9都不行,开始我以为是js库的问题,把jquery、jquery form的版本都换了,问题没解决。又怀疑是ie8下iframe的问题,鼓捣半天还是不对。最后通过ie的F12发现,响应有内容,没有头,原来是服务器没有写响应头,导致ie8无限挂起进入永恒。。。
解决:servlet代码加上下面三句即可了
response.setStatus(200);
response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  上传 ie8 挂起 无响应