Есть java контроллер для обработки формы
@RequestMapping(value = "/person/save", ... )
@ResponseBody
public boolean savePerson(...) {
return jpaPersonService.savePersonService(person);
}
Отдаёт json'ом true/false;
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) вижу что 'ajax success' и соответственно 'response: true' / 'response: false'. Т.е. в js ответ приходит.
В итоге, в #result у меня отправляется true/false от выполнения. Но, вышло так что при возврате true - всё как надо, а вот при возврате false - мои див пустой. Немного потыкав, нашёл что он будет добавляться в див, если к response'у я добавлю текста: $('#result').html(response + '');
Почему так? Тут где-то моя ошибка?