Как вывести сообщение об ошибке в ajax-запросе?
Есть скрипт, который отправляет данные из формы. Но он при любых обстоятельствах выдает алерт 'Ваше сообщение отправлено!' Как сделать другой алерт при ошибке отправки?
$('form').on('submit', function (e) {
e.preventDefault();
var form = $(this).serializeArray();
var action = $(this).attr('action');
console.log(action);
$.post(
myajax.url, {
form: form,
action: action
},
function (data) {
for (var i = 0; i < $('form').length; i++) {
$('form')[i].reset();
}
alert('Ваше сообщение отправлено!');
$(this).find('input[name="submit"]').toggleClass('is-disabled', true);
}
)
});
Ответы (1 шт):
Автор решения: Yaroslav Molchan
→ Ссылка
Правильней мне кажется будет использовать метод fail как вариант, но для этого нужно с сервера и отдавать код ответа ошибки, не 200.
$.post(myajax.url, {form: form, action: action})
.done(function(data) {
for (var i = 0; i < $('form').length; i++) {
$('form')[i].reset();
}
alert('Ваше сообщение отправлено!');
$(this).find('input[name="submit"]').toggleClass('is-disabled', true);
})
.fail(function(xhr, textStatus, errorThrown) {
alert(xhr.responseText);
});
Или есть вариант проще, оставить как есть, только в data отдавать результат и исходя из этого отдавать текст в alert