Почему в jQuery не срабатывает функция обработки результата post запроса?

Есть несколько форм с одним классом .dbphp, которые обрабатывается следующим кодом:
$(document).on('submit', '.dbphp', function(event) {
     $.post($(this).attr("action"), $(this).serialize(), function(data){
		if (data == "ok") {
			alert("ok");
		} else {
                        alert("error");		
		}
	});
event.preventDefault();
});

Post запрос проходит нормально и информация в базе данных обновляется как надо. Проблема в том, что функция function(data) не срабатывает. Что я делаю не так?
  • Вопрос задан
  • 4273 просмотра
Пригласить эксперта
Ответы на вопрос 2
@romansamko
укажите явно dataType четвертым параметром. Ну и console.log(data) в начале функции
Ответ написан
Комментировать
@molokovskikh
Я бы советовал пользоваться не оберткой $.post, а исходником, с учетом предыдущего совета.
Согласитесь гораздо проще запомнить одну функцию, чем помнить кучу оберток. Хотя...м..кому как... но баги так легче обнаруживаются...

$(document).on('submit', '.dbphp', function(event) {
$.ajax({
type: 'POST',
url: $(this).attr("action"),
data: $(this).serialize(),
success: function(data){
if (data == "ok") {
alert("ok");
} else {
alert("error");
}
},
dataType:'text'
});
event.preventDefault();
});

где dataType указывает тип результата возвращаемых данных в колбэкфункцию и может быть согласно документации (xml, json, script, text, html).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы