javascript - 如何使用 XMLHttpRequest 将数据从客户端 Javascript 传递到 node.js?
问题描述
我的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: undefined
如何将数据从客户端页面发送到服务器端,以便我可以使用它们执行其他操作?
解决方案
您只需要在 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
推荐阅读
- stanford-nlp - 代表在Coref中提及是什么意思
- php - PHP函数将字符串中的每个字符小写,除了最后一个字符
- html - CSS 对齐 2 个向左浮动和 1 个向右浮动
- python - 单击 QTreeView 项时防止 QComboboxView 自动折叠
- node.js - 如何对 let's encrypt 证书颁发执行回归测试?
- android - 有时 AdMob 横幅和插页式广告无法加载
- vbscript - 检查是否在 VB 脚本中建立了网络连接
- typescript - JavaScript Map 键值对不区分大小写搜索
- vue.js - vue Keep-alive不工作
- python - 您如何通过文件夹名称而不是文件名将图像读入分类器?