Показать сообщение отдельно
  #1 (permalink)  
Старый 12.05.2015, 17:55
Интересующийся
Отправить личное сообщение для igorz Посмотреть профиль Найти все сообщения от igorz
 
Регистрация: 19.09.2014
Сообщений: 23

jQuery .html(false)
Есть 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 + '');
Почему так? Тут где-то моя ошибка?
Ответить с цитированием