Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.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
Node.js req.body为空,表示从http post发送的post请求_Node.js_Angular_Multipartform Data - Fatal编程技术网

Node.js req.body为空,表示从http post发送的post请求

Node.js req.body为空,表示从http post发送的post请求,node.js,angular,multipartform-data,Node.js,Angular,Multipartform Data,我从angular应用程序向节点服务器发出post请求。我正在使用FormData和HttpClient发送帖子 const sendData = new FormData(); sendData.append('aff', loginName); this.http.post(this.loginURL, sendData, { responseType: 'json' }).subscribe(data => { console.log(data); }); 这是我的服务器端代

我从angular应用程序向节点服务器发出post请求。我正在使用FormData和HttpClient发送帖子

const sendData = new FormData();
sendData.append('aff', loginName);

this.http.post(this.loginURL, sendData, { responseType: 'json' }).subscribe(data => {
  console.log(data);
});
这是我的服务器端代码:

var bodyParser = require('body-parser');

let socketIO = require('socket.io');
var server = http.createServer(app);
let io = socketIO(server);
const port = process.env.PORT || 3002;

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: true }));
// parse application/json
app.use(bodyParser.json());


app.post('/login', function (req, res) {
    console.log(req.body);
    res.status(200).send({ result: "OK" });
});

server.listen(port, () => {
    console.log(`started on port: ${port}`);
});
当我控制台记录req.body时,我得到{}。以下是网络的图片:

我试过很多不同的方法。我不知道这为什么不起作用。我有它在其他网站上工作。请帮忙

更新:这对我很有用。。但是仍然很好奇为什么FormData不能正常工作

const sendData = {'username': loginName};
const config = { headers: new HttpHeaders().set('Content-Type', 'application/json') };
this.http.post(this.loginURL, sendData, config).subscribe(data => {
  console.log(data);
});

您确定问题不是url吗?将登录名更改为get,然后尝试从web浏览器打开this.loginUrl如果可以的话,那么url就可以了,问题是在某些情况下,如果我在节点服务器中得到响应,它怎么可能是url。log(req.body)显示空括号{}。所以我肯定是在攻击服务器。我认为这与使用formdata有关。@JD333您是否对多部分/表单数据使用了适当的主体解析器?我在服务器上看不到…@JD333试试这个: