问题
在Struts2中返回值返回如下格式
<pre style="word-wrap: break-word; white-space: pre-wrap;">返回内容</pre>
解决方案
找了很多网上的博客,统一问题解决方案是response的contentType需要设置为“text/html”。我在controller中设置response的header的contentType为text/html并没有生效。
解决思路
第一想法是有客户端返回信息,那么问题应该是出自客户端。由于是http请求那么肯定有什么机制或者参数导致Struts2在解析返回值时返回pre标签。在翻看http请求时http请求参数返回正常,那么可以基本判定是前端jqueryForm封装的问题。
解决方案
ajax提交时声明 contentType:“application/json”,实际上还是修改contentType
$(form).ajaxSubmit({
contentType:"application/json",
dataType:"json",
success : function(data) {
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
}
});
猜想
因为没有查到具体的文档说明ajaxForm里面的处理机制,jquery源码我就不深究了。猜想应该是在请求中对contentType判断类型,对返回值做了一定的封装。