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

目前用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\"}]";
}



除非申明,文章均为一号门原创,转载请注明本文地址,谢谢!
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.