Web Node/Express Webアプリケーションに基本的なメッセージングサービスがあり、FormDataオブジェクトを使用してフォームをAjax経由で送信しようとしています。JQuery経由でフォームを送信するAjax投稿リクエスト
フォームをAJAXなしで送信すると、すべて正常に動作しますが、AJAXはreq.bodyとなります。すべて未定義です。
AJAXを使用している場合、サーバー上で、req.body以外のデータを探す必要がありますか?
いる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リクエストです:下記の彼の答えのためのG.マンスールへ
$.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
感謝を。私は完全に行を削除するときに私はすべてのもの、また
contentType: 'application/json',
に動作しない、いくつかの点で、この行を試みたが、
contentType: false,
:場合は誰がここを取得、問題はラインでしたいつものように働いています...誰かが私にこのラインがすべてを壊していた理由を教えてもらえれば、私は知りたいと思うでしょう。
ファイルが含まれていますか?フォームをシリアライズして作成したカスタム設定を取り除くのがそれほど単純ではない場合 – charlietfl
コメントありがとう@charlietflいいえ、関連するファイルはありません。私はちょうどG. Mansourが以下に示唆したようにフォームをシリアライズすることに行きましたが、予期せぬトークンが0の位置にある 'parseerror'を取得します。 –
ブラウザのdevツールネットワークの実際の要求を調べることができます返されるものそれは有効ではありませんjson – charlietfl