dataType使用"json",contentType使用"application/json',后台返回字符串。
问题来了:1、虽然经过了SpirngMVC配置文件的设置来防止IE浏览器提示保存json文件,Controller返回json,但是在IE11下,仍然提示保存json文件。
解决办法:是页面改为text/html提交方式,后台通过response来返回响应内容。
2、jquery.min_1_9_1.js以及以后的版本,不支持ajaxfileupload.js中的browser.version属性设置
解决方法:添加jquery-browser.js 见附件。
注意页面引入顺序要注意,
//页面做的兼容性设置
后台代码
/** * 上传文件信息预览 * * @param * @return * @throws IOException */ @RequestMapping(value = "/uploadPreview", method = RequestMethod.POST) public void uploadPreview( @RequestParam(value = "excel_file", required = false) MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws IOException { String json = ""; MapresultMap = new HashMap (); try { json = JsonUtils.toJson(resultMap); } catch (Exception e) { // TODO: handle exception logger.error("uploadPreview", e); resultMap.put("msg", "上传出错或上传的Excel文件不合法"); resultMap.put("success", false); json = JsonUtils.toJson(resultMap); } response.setContentType("text/html;charset=UTF-8"); response.setCharacterEncoding("UTF-8"); response.getWriter().print(json); }
最后还有一个问题,在IE9/IE10下有保护机制,只能通过点击上传标签来上传文件,不能通过其它按钮的触发时间来上传,否则,禁止提交文件。
解决办法:使用 来替代Button,用其for属性来指向对应的标签,这样就能提交了,好奇快!
参考URL: http://blog.csdn.net/x1172031988/article/details/70142895