一、通常的写法
前端写法:
uploader = new ptf.PUploader({
url: '<c:url value="/org/orgImportDo"/>',
browse_button: $("#browse_button")[0],
init: {
FileUploaded: function (uploader, file, res) {
var data = $.parseJSON(res.response);
if (data.success) {
//处理导入成功
} else {
//处理导入失败
}
}
}
......以下省略.....
后端代码:
@ResponseBody
@RequestMapping(value = "/orgImportDo", method = RequestMethod.POST)
public AjaxResponse orgImportDo(PluploadFile pluploadFile, HttpServletRequest request) {
AjaxResponse ar = new AjaxResponse();
//具体的处理导入逻辑...
return ar;
}
大部分浏览器都能正常使用,但是在IE8/9下则提示下载json格式数据。
IE10可以支持application/json格式的Response了,也就是说低于IE10版本一下的IE浏览器都需要使用text/html格式的Response。
二、改进
前端代码不变。
后端代码:
@RequestMapping(value = "/orgImportDo", method = RequestMethod.POST)
public void _org(PluploadFile pluploadFile, HttpServletRequest request, HttpServletResponse response)throws Exception{
AjaxResponse ar = new AjaxResponse();
//具体的处理导入逻辑...
response.getWriter().write(JsonMapper.nonDefaultMapper().toJson(ar));
}
试测后,兼容大部分浏览器(包括IE8/9)