说来也奇怪,用ajaxFileUpload上传文件的同时带过几个数据过去,本来很简单的的一件事情却遇到的麻烦。responseBody返回的json数据格式为带的头信息为application/json,而ajaxFileUpload它认可的头信息为text/html,也就是说当服务器的头信息为application/json的时候,浏览器接收到的json数据会变成
<prestyle="word-wrap:break-word;white-space:pre-wrap;">json</pre>"
当时看到这个我就傻眼了,莫非要搞正则去匹配解析出来!这也太麻烦了。转而想到了信息头的事情,果然,responseBody注解返回的json数据默认的头信息contenType是application/json,而ajaxFileUpload是默认为text/html,我只好把responseBody去掉,自己手动来返回字符串了,大致的代码是这样的:
response.setContentType("text/html;charset=UTF-8"); PrintWriterpw=newPrintWriter(response.getOutputStream()); Stringstring=objectMapper.writeValueAsString(information); string=newString(string.toString().getBytes("UTF-8")); pw.print(string); pw.close();
objectMapper为jackson包的讲object转为json用的,很好用,推荐。
基本上就解决了这个奇葩问题。