我是 NodeJS 新手,我正在尝试使用 Angular 将数据发送到服务器
$scope.logearse = function () {
$http({
method: "POST",
url: "http://localhost:8888/login",
data: $scope.usuario
}).then(function successCallback(response){
console.log(response)
}, function errorCallback(error){
alert("No se han podido enviar los datos")
})
}
但是在服务器中,当我尝试接收请求时始终是 {}
http.createServer(function(peticion, respuesta){
console.log(peticion.url)
console.log(peticion)
// We begin with "login"
if (peticion.url == "/login") {
console.log("Inside of Login)
var datosUsuarioLogin = '';
peticion.addListener("data", function(chunk) {
datosUsuarioLogin += chunk;
// function called when a new chunk of data is recibed
});
peticion.addListener("end", function() {
// When the data is recibed is transformed in JSON
var datosUsuarioLoginObjeto = querystring.parse(datosUsuarioLogin);
recuperarDatos(datosUsuarioLoginObjeto, respuesta);
console.log(datosUsuarioLoginObjeto) //return {}
});
//End of LOGIN "if"
}
}).listen(8888)
如果我使用带有常规提交的表单,则相同的代码可以工作,但如果我尝试使用 ANGULAR 的 $http,则不行。
我尝试使用“params”而不是“data”,但“params”会转换 URL 中的数据,并且代码不起作用。
最佳答案
需要使用bodyParser
解析请求体,并将结果放入路由的request.body中。
app.use(express.bodyParser());
请求:
$http({
method: "POST",
url: "http://localhost:8888/login",
contentType: "application/json",
data: $scope.usuario // if usuario is not a valid json, you could to use JSON.stringify($scope.usuario);
关于javascript - AngularJS 不向 NodeJS 服务器发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39771203/