[英]Can't get POST data in NodeJS from Angular app
我无法从Angular应用程序制作的POST方法中获取参数。 我试图在这里寻找答案,甚至复制/粘贴一些示例,但似乎无济于事。
节点代码:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static('public_html'));
app.post('/test', function (request, response) {
console.log(request.body.name)
response.status(201).json(request.body.name);
});
app.listen(8787,function() {
console.log('Listening on 8787');
});
角度代码:
$ scope.postData = function(){
$http.post('/test',{name: $scope.name}).success(function(data,status) {
console.log('SUCCESS: ' + status);
console.log(data);
}).error(function(error) {
console.log('ERROR');
console.log(data);
})
}
我可以在开发人员工具的网络面板上看到已经发送了数据,而且我什至得到了201的http代码,但没有得到答复。 在NodeJS中发布路由的console.log()中,我也变得不确定。 似乎人体分析器无法正常工作,或者我缺少其他功能。
有角的$http.post
函数将发送JSON正文,而不是urlencoded正文。
添加此中间件以解析JSON对象:
app.use(bodyParser.json());
我遇到了同样的问题,这就是我解决的方法。
改变这部分
response.status(201).json(request.body.name);
至
response.write(request.body.name);
response.end();
希望它能解决您的问题。 但我不确定为什么会起作用。 我希望有人能解释。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.