Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript expressjsajax发送空数据_Javascript_Node.js_Express - Fatal编程技术网

Javascript expressjsajax发送空数据

Javascript expressjsajax发送空数据,javascript,node.js,express,Javascript,Node.js,Express,我需要向我的服务器发送JSON,但是POST请求的正文是空的。这是我在前端的打字稿: function sendData() : void { console.log("Sending data..."); var name_ : string = (document.getElementById("name") as HTMLInputElement).value; var id_ : string = (document.getElementById("series") as HTMLInp

我需要向我的服务器发送JSON,但是POST请求的正文是空的。这是我在前端的打字稿:

function sendData() : void {
console.log("Sending data...");
var name_ : string = (document.getElementById("name") as HTMLInputElement).value;
var id_ : string = (document.getElementById("series") as HTMLInputElement).value;

var toSend = new FormData();
toSend.append("name",name_);
toSend.append("id",id_);

var request = new XMLHttpRequest();
request.open("POST", "/add");
request.send(toSend);

}
我的服务器有这样的代码:我省略了文件路径

var Express = require('express');
var BodyParser = require('body-parser');
var Multer = require('multer');
var app = Express();
var upload = Multer();

app.use(Express.static("/public"));
app.use(BodyParser.urlencoded({extended:true}));
app.use(BodyParser.json());

app.get('/public/dataAjax.js', function(req,res){
res.sendFile("C:\\<omitted>\\dataAjax.js");
})

app.get('/', function(req,res) {
  res.sendFile("C:\\<omitted>\\index.html");
});

app.post('/add', function(req,res) {
  console.log("Received:");
  console.log(req);
  res.status(201).json(req.body.name);
});

app.listen(8000, () => console.log("Running on port 8000!"));
var Express=require('Express');
var BodyParser=require('body-parser');
var Multer=需要('Multer');
var-app=Express();
var upload=Multer();
应用程序使用(快速静态(“/public”);
use(BodyParser.urlencoded({extended:true}));
use(BodyParser.json());
app.get('/public/dataAjax.js',函数(req,res){
res.sendFile(“C:\\\\dataAjax.js”);
})
app.get('/',函数(req,res){
res.sendFile(“C:\\\\index.html”);
});
app.post('/add',函数(req,res){
控制台日志(“已接收:”;
控制台日志(req);
res.status(201.json)(req.body.name);
});
app.listen(8000,()=>console.log(“在端口8000上运行”);

我的问题似乎完全是服务器端的问题,因为我在过去使用过flask,这段代码运行良好。这里我的重点是使用带有expressjs的节点。

这只解析内容类型为
application/x-www-form-urlencoded
的请求。请参阅主体解析器的说明

app.use(BodyParser.urlencoded({extended:true}));
FormData
发送内容类型设置为
multipart/form data
的请求。 由于bodyparser无法解析此类内容类型,您应该尝试以
application/json
application/x-www-form-urlencoded
的形式发送数据。 参见的MDN文档

您可以使用jquery的方法来获取URL编码的字符串。

的可能重复项