使用SpingMVC开发rest接口,返回json到页面时,IE提示下载json对话框
在开发rest接口时,采用spring自带的方式jackson返回数据,但是在ie浏览器下总是提示下载数据,并且android客户端则提示无法连接服务。刚开始觉得二者之间没有关系,后来发现是spring配置的问题。
如果是:<mvc:annotation-driven />来注册DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter,系统会设置content为application/json,这种情况下由于IE并不支持此类MIMEType,因此会提示下载。需要修改为text/html方式。具体spring配置:
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" /> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="jsonHttpMessageConverter" /> </list> </property> </bean> <bean id="jsonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" p:supportedMediaTypes="text/html"/>