jQuery-File-Upload和Spring MVC IE9不起作用

我使用jQuery-File-Upload和Spring MVC之类的服务器部分。 我尝试了这个例子 ,它在IE 9浏览器中不起作用。 它告诉我:“你想保存或打开物体”

客户端就像在示例中:

    jQuery File Upload Example         $(function () { $('#fileupload').fileupload({ dataType: 'json', done: function (e, data) { $.each(data.result.files, function (index, file) { $('

').text(file.name).appendTo(document.body); }); } }); });

服务器是:

 @RequestMapping(value = "fileUpload/{id}", method = RequestMethod.POST) @ResponseBody public FileUploadResultDTO upload(MultipartFile file, @PathVariable Long id, Locale locale, HttpServletRequest request) { FileUploadResultDTO resultDTO = new FileUploadResultDTO(); // Logic saving file and return back response like object return resultDTO; } public class FileUploadResultDTO { private Long photoId; private String pathToPhoto; private String pathToSmallPhoto; // getters/setters } 

它适用于IE以外的所有浏览器

我有完全相同的问题,并设法通过更改方法来始终生成’text / plain’内容而不是’application / json’来解决它。 我这样做是通过添加’produce =“text / plain”’来请求映射注释,将返回值类型更改为String并使用Jackson手动将对象转换为Json。

使用您的代码,这看起来像这样:

 @RequestMapping(value = "fileUpload/{id}", method = RequestMethod.POST, produces="text/plain") @ResponseBody public String upload(MultipartFile file, @PathVariable Long id, Locale locale, HttpServletRequest request) { FileUploadResultDTO resultDTO = new FileUploadResultDTO(); // Logic saving file and return back response like object return Jackson.toJsonString(resultDTO); } 

这似乎适用于IE9(使用iframe传输)和现代浏览器,但没有,但似乎有点hackish,因为正确的类型应该是’application / json’。

你的问题听起来像这样:

IE提示从服务器打开或保存json结果

希望能帮助到你