У меня есть базовая служба обмена сообщениями в веб-приложении Node/Express, и я пытаюсь отправить форму через Ajax, используя объект FormData.Отправка формы через JQuery Ajax Post Request
Если я отправлю форму без AJAX, тогда все будет хорошо, но с AJAX req.body. все не определены.
На сервере мне нужно искать данные где-то, кроме req.body при использовании AJAX ??
Создание объекта FormData:
var ajaxData = new FormData;
ajaxData.append('newMessage', $('.new-message').val()) // I've console.logged these, and their values are correct
ajaxData.append('senderId', $('[name="senderId"]').val())
ajaxData.append('senderName', $('[name="senderName"]').val())// I've console.logged these, and their values are correct
ajaxData.append('recipientId', $('[name="recipientId"]').val())
ajaxData.append('recipientName', $('[name="recipientName"]').val())// I've console.logged these, and their values are correct
И это запрос POST:
$.ajax({
url: $form.attr('action'),
type: $form.attr('method'),
data: ajaxData,
dataType: false,
cache: false,
contentType: false,
processData: false,
complete: function() {
console.log('message created');
},
success: function(data) {
},
error: function(xhr, textStatus, errorThrown) {
console.log(xhr.statusText);
console.log(textStatus);
console.log(errorThrown);
}
});
EDIT
Благодаря Г. Mansour за его ответы ниже. В случае, если кто-то получает здесь, проблема была строка:
contentType: false,
Я попробовал эту линию в какой-то момент, который также не работает
contentType: 'application/json',
Но когда я удалить строку целиком, все работает нормально ... Если кто-нибудь скажет мне, почему эта линия ломает все, мне было бы интересно узнать.
Есть ли файлы? Если не намного проще просто упорядочить форму и избавиться от пользовательских настроек, которые вы создали – charlietfl
Спасибо за комментарий @charlietfl Нет, нет никаких файлов. Я только что начал сериализовать форму, как предложил Г. Мансур ниже, но я получаю «parseerror» с неожиданным токеном в позиции 0. –
проверяет фактический запрос в браузере dev tools network .. может видеть что возвращается. Недействительно json – charlietfl