ユーザーデータを取得するための入力フィールドと選択フィールドがあるフォームがあります。そして、送信ボタンのハンドラを介してajax呼び出しを送信して、ユーザーデータをサーバーに保持したいと考えています。ここで`req.body`を使用してexpress.jsでフォームデータを取得することができません
がコードのスケルトンで、
クライアント側:
xhr.open("POST", "/upload", true)
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
log('ajax succeed')
} else {
log('ajax failed')
}
}
}
console.log(data) // the data is not empty
xhr.send(data)
サーバー側:
import express from 'express'
import bodyParser from 'body-parser'
var app = express()
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))
app.post('/upload', (req, res) => {
console.log(req.body) // get "{}"
res.send('greetings from Express!')
})
AJAX呼び出しは、サーバーのエンドポイントに到達し、適切にメッセージを送ることができますクライアントに返信しますが、なぜフォームデータをreq.body
から取得できないのですか?
任意のヒント? – Phil
@Philデータの形は '{username、uploaded_file、selected_options}' – Xlee
のように 'data'は実際のJavaScriptオブジェクトですか?あなたは 'application/x-www-form-urlencoded'(あなたが現在やっていること)やJSONとして送信したいですか? – Phil