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

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浏览器,也就导致这个问题的产生。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值