ajax 返回json 在ie 下提示下载的解决办法

摘要: 目前用jquery fileupload 插件做一个文件上传的东西,然后返回json , 在chrome 下很正常的,但一旦在firefox,ie下,在上传文件成功之后,就会出现一个下载提示框,这东西很讨厌,所以应该去掉,在网上找了一些资料,一般的解决办法就是 设置httpheader.我用的是spring mvc ,利用spirng 的HttpHeaders 可以很方便的设置。出现提示下载的页面:图片链接其实只要在后台修改代码,设置httpheader就可以了,另外一点要注意的是,方法的返回值必须是 string ,不能是其他对象。然而 spring mvc @responsebody 是可以将任何对象序列化成为 json 字符串的。但在这里,必须返回 String , 就目前我的测试而言是如此的。

目前用jquery fileupload 插件做一个文件上传的东西,然后返回json , 在chrome 下很正常的,但一旦在firefox,ie下,在上传文件成功之后,就会出现一个下载提示框,这东西很讨厌,所以应该去掉,在网上找了一些资料,一般的解决办法就是 设置httpheader.我用的是spring mvc ,利用spirng 的HttpHeaders 可以很方便的设置。

出现提示下载的页面:

其实只要在后台修改代码,设置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\"}]";
}

上一篇: java 流与byte 互相转换,并与base64编码转换
下一篇: 利用jackson 序列化和反序列化java对象
 评论 ( What Do You Think )
名称
邮箱
网址
评论
验证
   
 

 


  • 微信公众号

  • 我的微信

站点声明:

1、一号门博客CMS,由Python, MySQL, Nginx, Wsgi 强力驱动

2、部分文章或者资源来源于互联网, 有时候很难判断是否侵权, 若有侵权, 请联系邮箱:summer@yihaomen.com, 同时欢迎大家注册用户,主动发布无版权争议的 文章/资源.

3、鄂ICP备14001754号-3, 鄂公网安备 42280202422812号