我的Java控制器从表单中获取数据,并将JSON Boolean结果发送回:
@RequestMapping(value = "/person/save", ... )
@ResponseBody
public boolean savePerson(...) {
...
return jpaPersonService.savePersonService(person);
}
js在表单的提交按钮上:
$('#savePersonForm').submit(function (event) {
event.preventDefault();
$.ajax({
url: '/person/save',
type: 'post',
data: $('#savePersonForm').serialize(),
success: function (response, textStatus, jqXHR) {
console.log("ajax success");
console.log("response: " + response);
$('#result').html(response);
},
error: function (jqXHR, textStatus, errorThrown) {
console.log('error(s):' + textStatus, errorThrown);
}
});
});
在两种情况下,当我的控制器发送回true/false
时,我都可以看到response: true
或response: false
。因此,我确定JS会得到答案。
我的下一步是将此答案添加到DIV #result
中。如果是true
-一切都很好。如果是 false
,我会得到一个空的div。经过一些测试,我得到了,如果我在response
中添加文本,则可以正常工作:$('#result').html(response + '');
。
我正在使用jquery-2.1.4.min.js。
我在某个地方有一个错误还是应该这样?谢谢。
问题是因为您正在尝试将元素的 html()
设置为布尔值false
值(即使true
确实如此)来源)。
要解决此问题,您需要强制将布尔类型胁迫被胁迫。尝试以下操作:
$('#result').html('' + response);
或
$('#result').html(response.toString()); // if supported
工作示例