我尝试使用AJAX将简单的表单数据发送到节点/快速服务器。提交时,我带到了一个无法POST /页面,虽然我能够在console.log中获得一个req,但它并没有包含表格中的数据。我错过了什么?
表格
<form method="POST" class="form-group">
<label for="sentenceCount">Sentences</label>
<input type="number" placeholder="10" name="sentence count" id="sentenceCount" class="form-control parameters">
<button type="submit" id="submit" class="btn btn-primary mt-1">Submit</button>
</form>
AJAX请求 $(&#39;按钮&#39;)。on(&#39;点击&#39;,功能(数据){
$.ajax({
data: data,
url: '/data',
type: "POST"
})
}
)
Server.js
var express = require('express');
var app = express();
app.listen(8000)
app.get('/', function (req, res) {
res.sendFile('/Index.html', {
root: __dirname
})
});
app.post('/data', function (req, res) {
console.log(req)
})
更新:
我已经摆弄并且能够访问身体属性,但是身体是空的,无法获得我需要的输入值。
AJAX:
$('button').on('click', function(data) {
var formData = $('input').val();
console.log(formData)
$.ajax({
data: formData,
url: '/data',
type: "post"
})
}
)
服务器:
app.get('/', function (req, res) {
res.sendFile('/Index.html', {
root: __dirname
})
});
app.use(bodyParser.json())
app.post('/data', function(req, res) {
console.log(req.body)
});
答案 0 :(得分:1)
你忘记了身体解析器。
npm i body-parser
示例:
const bodyParser = require('body-parser');
const express = require('express');
const app = express();
app.use(bodyParser.json())
app.post('/data', (req, res) => {
console.log(req.body);
res.end();
});
表单数据应该是使用JSON编码的对象:
$('button').on('click', function(data) {
var formData = $('input').val();
$.ajax({
data: {value: formData},
url: '/data',
type: "post"
})
}
)