繁体   English   中英

无法从Angular应用获取NodeJS中的POST数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM