spring controller使用了@ResponseBody却返回xml

使用ajax请求数据

$.ajax({

   url:message.rootPath +"/sendMessage.xhtml",
type:"post",
dataType:"json",
data:
{
sendWay:sendWay,
sendTo:sendTo,
groupId:groupId,
userId:userId,
messageTitle:messageTitle,
messageTicket:messageTicket,
messageType:messageType,
messageContent:messageContent
},
success:function(result)
{
if(result.success)
{
parent.$.messager.alert("提示","发送成功")
}else
{
parent.$.messager.alert("提示","发送失败")
}
},
error:function()
{
parent.$.messager.alert("提示","系统异常")

}
});
controller里
/**
* 后台配置发送消息
* @param messageForm
* @return
*/
@RequestMapping(value="sendMessage.xhtml",method=RequestMethod.POST)
@ResponseBody
public ResponseEntity<Void> sendMessage(MessageForm messageForm)
{
try {
messageFormService.sendMessage(messageForm);
return new ResponseEntity<Void>(true);
} catch (AdqException e) {
e.printStackTrace();
}
return new ResponseEntity<Void>(false);
}

同一个Action中返回实体能解析成json
最后发现是前端ajax没有加dataType
看Jquery API
预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如XML MIME类型就被识别为XML。
在1.4中,JSON就会生成一个JavaScript对象,而script则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。
 
原文地址:https://www.cnblogs.com/alway-july/p/6555522.html