我的 index.html 文件中有HTML输入。
<input type="text" id="handle" >
<input type="text" id="message" >
<button id="send">send</button>
当我填写数据并单击发送时,我想将它们发送到我的节点脚本中,在这里我可以处理传递的数据。
我的 index.html 脚本:
$("#send").on("click", function() {
var message = $("#message").val();
var handle = $("#handle").val();
var xhr = new XMLHttpRequest();
var data = {
param1: handle,
param2: message
};
xhr.open('POST', '/data');
xhr.onload = function(data) {
console.log('loaded', this.responseText);
};
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON.stringify(data));
});
以及如何尝试在服务器端 test.js 文件中接收数据。
app.post('/data', function(req, res){
var obj = {};
console.log('body: ' + req.body);
res.send(req.body);
});
在这种情况下,输出显示: body:未定义
如何将数据从客户端页面发送到服务器端,以便可以使用它们执行其他操作?
答案 0 :(得分:2)
您只需要在Express中使用JSON正文解析器,如下所示:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;
app.use(express.static('./'));
/* Parse JSON data using body parser. */
app.use(bodyParser.json());
app.post('/data', function(req, res){
console.log('body: ', req.body);
res.send(req.body);
});
app.listen(port);
如果尚未安装该模块,请执行npm安装:
npm install body-parser