我最近刚刚开始学习 MEAN 堆栈,所以如果这看起来是一个非常愚蠢的问题,请原谅我。我的问题如下:
在客户端(controller.js)我有,
$http({
method : 'POST',
url : '/root',
// set the headers so angular passing info as form data (not request payload)
headers : { 'Content-Type': 'application/x-www-form-urlencoded' },
data : {
type:'root',
username:$scope.rEmail,
password:$scope.rPassword
}
})
在服务器端我有,
app.post('/root', function(req, res) {
console.log(req.body);
console.log(req.body.username);
});
我的控制台日志显示:
17 Nov 21:39:04 - [nodemon] starting `node server/server.js`
{ '{"type":"root","username":"testUserName","password":"testPassword"}': '' }
undefined
我想象 req.body.username 给我 testUserName 但我没有定义。我得到的 JSON 格式有点奇怪。谁能帮我解决这个问题吗?我做了一些阅读并尝试使用 body-parser 并浏览了 Angular js $http.post 文档,但没有找到任何可以帮助我的内容。
我想问题出在:
{ '{"type":"root","username":"testUserName","password":"testPassword"}': '' }
但我似乎无法弄清楚如何在我的 Angular Controller 中传递来自 $http.post 的数据,以便我只能以标识符:值格式获取请求。
最佳答案
没关系,我已经明白了。看来我需要从编码中休息一下。
headers : { 'Content-Type': 'application/x-www-form-urlencoded' }
至
headers : { 'Content-Type': 'application/json' }
解决了问题。
关于javascript - 使用express和body-parser在服务器端解析AngularJS http.post数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33770964/