您的位置:首页 > 移动开发

SpringMVC 解决IE8浏览器把返回报文格式application/json当文件下载的问题

2016-10-14 14:54 686 查看

解决浏览器兼容一直是个头疼的问题,尤其是IE浏览器,最近开发上传文件接口的时候,由于IE8及以下不兼容JS上传组件,所以采取了iframe框架,利用form表单提交,遗憾的是,返回报文格式:application/json 的返回报文被IE8当作文件给下载了,下载了。。。当时差点没石化。。

问题还是要解决,没办法,所以找了一会资料都没碰到遇到类似问题的。唯一收获是,有人建议把,MIME Type修改为text/plain。思路是对的。但是仅仅是改
produces = MediaType.TEXT_PLAIN_VALUE 还是会有问题的。controller方法体内会正常执行并返回,但是spring

框架就报错了,会报406错误, HTTP 406: The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers.


后来又找了一会资料,才在:http://stackoverflow.com/questions/28828896/how-to-return-a-boolean-value-with-rest  找到正确答案。原来,使用了produces=MediaType.TEXT_PLAIN_VALUE
的方法,返回值必须是String,不能是其他任何对象或值。否则必报406.

正确的方法构造应该如下。

@RequestMapping(value = "/test", method = {RequestMethod.POST,RequestMethod.GET}, produces = MediaType.TEXT_PLAIN_VALUE)
@ResponseBody
public String test(HttpServletRequest request) {
return JsonUtil.getJsonStr(new Response<String>());
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐