IE中@responseBody出现文件下载的解决办法

优秀的程序员应该经得起IE的折腾。

对于IE,开发人员也不能说什么,虽然很烂,确实很烂,特别是IE8之前的,但是客户喜欢用也没办法。

 

这不,easyui中form提交,对于success方法就是个比较纠结的问题。或者说,对于Spring中的@ResponseBody返回的Json就是个比较麻烦的问题。

 

首先说说@ResponseBody是干嘛的,这个注解将返回值转化为json字符串,而且在返回时添加response头信息,类似于设置 response.setContentType("application/json; charset=UTF-8");"),但是json这玩意儿IE不认识,就当做文件处理咯,也就会弹出“是否下载”的对话框来。

既然是@ResponseBody注解上的问题,也就是说,在@ResponseBody对应的controller里面设置的头部信息肯定会在外面被覆盖掉。肿么办呢,还好Spring确实考虑了这一点。

	<mvc:annotation-driven ignoreDefaultModelOnRedirect="true" validator="validator">
		<!-- 这里配置IE的json格式兼容性 -->
	   <mvc:message-converters register-defaults="false">
               <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
               <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                  <property name="supportedMediaTypes" value="text/plain;charset=UTF-8" />
               </bean>
               <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                  <property name="supportedMediaTypes" value="text/plain;charset=UTF-8" />
               </bean>
            </mvc:message-converters>
	</mvc:annotation-driven>


这里可以明显的看出设置了“text/plain;charset=UTF-8”,这样的话,返回的值就不再是那种"application/Json"了。这种IE还是认识的。

 

希望对大伙有帮助。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值