<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Heck's  Blog]]></title> 
<link>https://www.heckjj.com/index.php</link> 
<description><![CDATA[一瞬间的决定，往往可以改变很多，事实上，让自己成功的往往不是知识，是精神！ 如果你总是为自己找借口，那只好让成功推迟。执行力，今天！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Heck's  Blog]]></copyright>
<item>
<link>https://www.heckjj.com/post//</link>
<title><![CDATA[spring MVC 3.2中@ResponseBody返回乱码的完美解决方案]]></title> 
<author>Heck &lt;@hecks.tk&gt;</author>
<category><![CDATA[编程杂谈]]></category>
<pubDate>Mon, 22 Aug 2016 07:35:37 +0000</pubDate> 
<guid>https://www.heckjj.com/post//</guid> 
<description>
<![CDATA[ 
	 本来因为ajax跨域http远程调用时有问题，在服务端响应时用以下方式解决了，但IE8及下有问题。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.addHeader("Access-Control-Allow-Origin", "*");<br/>response.addHeader("Access-Control-Allow-Methods", "POST,GET");<br/>response.addHeader("Access-Control-Allow-Credentials", "true");<br/>后来准备再包装一下，自己再提供http接口，在http接口中用httpclient去取数据，但发现springMVC的返回乱码问题搞了我好久，怎么搞都弄不好，网上的各种方法也都不行，最后在stackoverflow上面看到了一个解决方案可行，此为链接地址：http://stackoverflow.com/questions/3616359/who-sets-response-content-type-in-spring-mvc-responsebody <br/>首先，这个问题在stackoverflow上是三年前提问的，所以有一些方法已经过期废弃了，所以上面可以用的解决方式只有一种，在RequestMapping上添加属性produces：<br/> <br/>@RequestMapping(value = "/getAllCategory", method = &#123; RequestMethod.GET,<br/>RequestMethod.POST &#125;, produces = "application/json;charset=UTF-8")<br/>@ResponseBody<br/>public String getAllCategory(HttpServletRequest request,<br/>HttpServletResponse response) &#123;<br/>return GYHttpClient.post(GET_PRODUCT_CATEGORY_LIST_URL);<br/>&#125;<br/> <br/>这是从我的项目中copy下来的，把参数什么的去掉，换成自己的即可。<br/> <br/>但是上面的解决方案有点不好，要每一个方法都添加这么一句代码，虽然灵活性高，优雅，但是却麻烦。所以我试了其它的方法，但是不生效，后来看一下源码，才发现3.2后AnnotationMethodHandlerAdapter已经过期了，现在用的是RequestMappingHandlerAdapter，但是RequestMappingHandlerAdapter试了一下也不行（理论上这个也是可行，没研究出来 T ^ T）。所以研究了下发现可以声明注解驱动器（不知道是不是这么翻译）的时候的控制编码的转换，结果就这么解决了，太帅气了！<br/> <br/><mvc:annotation-driven>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<mvc:message-converters>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<!-- default StringHttpMessageConverter, solve encoding problem -->&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<bean class="org.springframework.http.converter.StringHttpMessageConverter">&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<constructor-arg value="UTF-8" />&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<property name="writeAcceptCharset" value="false" />&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</bean>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;</mvc:message-converters>&nbsp;&nbsp;<br/></mvc:annotation-driven> <br/> <br/>OK，完美解决。<br/>关于跨域的问题可以参考：<a href="http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/" target="_blank">"Cross-domain Ajax with Cross-Origin Resource Sharing" </a>
]]>
</description>
</item><item>
<link>https://www.heckjj.com/post//#blogcomment</link>
<title><![CDATA[[评论] spring MVC 3.2中@ResponseBody返回乱码的完美解决方案]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.heckjj.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>