原因: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"> <!-- 這里配置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>