ajax 返回json 在ie 下提示下载的解决办法
By:Roy.LiuLast updated:2013-07-29
目前用jquery fileupload 插件做一个文件上传的东西,然后返回json , 在chrome 下很正常的,但一旦在firefox,ie下,在上传文件成功之后,就会出现一个下载提示框,这东西很讨厌,所以应该去掉,在网上找了一些资料,一般的解决办法就是 设置httpheader.我用的是spring mvc ,利用spirng 的HttpHeaders 可以很方便的设置。
出现提示下载的页面:
其实只要在后台修改代码,设置httpheader就可以了,另外一点要注意的是,方法的返回值必须是 string ,不能是其他对象。然而 spring mvc @responsebody 是可以将任何对象序列化成为 json 字符串的。但在这里,必须返回 String , 就目前我的测试而言是如此的。
例子代码如下:
出现提示下载的页面:
其实只要在后台修改代码,设置httpheader就可以了,另外一点要注意的是,方法的返回值必须是 string ,不能是其他对象。然而 spring mvc @responsebody 是可以将任何对象序列化成为 json 字符串的。但在这里,必须返回 String , 就目前我的测试而言是如此的。
例子代码如下:
@RequestMapping(value="/upload", method = RequestMethod.POST) @ResponseBody public String upload(MultipartHttpServletRequest request, HttpServletResponse response,@RequestParam(required=false) MultipartFile[] myfiles) { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.TEXT_PLAIN); System.out.println("begin to upload"); for(MultipartFile file:myfiles) { if(file.isEmpty()) continue; System.out.println(file.getContentType()+","+ file.getName()+","+file.getOriginalFilename()); } return "[{\"fileName\":\"app_engine-85x77.png\",\"fileSize\":\"8 Kb\",\"fileType\":\"image/png\"}]"; }
From:一号门
Previous:java 流与byte 互相转换,并与base64编码转换
COMMENTS