您的位置:首页 > Web前端 > JavaScript

低版本IE对于JSON数据的处理

2017-01-13 11:41 232 查看
SpingMVC框架中,我们的controller常常会将数据保存在一个map中传回到前台页面,前台页面将其作为JSON数据处理,但在现实中,我们可能遇到这么一种情况:

我们上传了一张图片,调用后台的controller,返回给我们前台一个JSON数据,但结果IE帮我们默认下载这个数据,这明显不是我们想要的结果。此时有两个方案:

1、用高版本的浏览器

IE9以下版本的老浏览器很有可能会出现这样的错误。但现实中用低版本浏览器很可能是需求所致,所以这条方案常常是 不通过的。

2、修改你的返回值

如果你是用的Spring中的controller,之前你的调用的方法很可能是类似:

@RequestMapping(value = "commonfileupload", method = RequestMethod.POST)
@ResponseBody
public Object commonfileupload(@RequestParam(value="file") MultipartFile file,Model model) {
Map rs = new HashMap();
rs.put("result", "suc");
return rs;
}

现在你需要改成:

@RequestMapping(value = "commonfileupload", method = RequestMethod.POST)
public void commonfileupload(@RequestParam(value="file") MultipartFile file,Model model,
HttpServletRequest req, HttpServletResponse resp) {
String result = "{\"result\":\"suc\"}";

// 针对低版本的IE浏览器,必须使用这种格式
resp.setContentType("text/html");
try {
resp.getWriter().print(result);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
通过这种方式,将一个字符串传到前台,前台依旧可以以处理JSON数据的方式进行操作。

这是博主在使用ueditor时修改了其上传图片调用的后台方法,需要给出JSON数据的返回值让前台处理,但是项目要求必须使用低版本的IE浏览器,也就导致这个问题的产生。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  json ie UEditor