我正在尝试使用angular.js将json发送到服务器节点/ express
我的server.js
/* * Setup */ // Dependencies var express = require('express'); // Start Express var app = express(); // Conf port var port = process.env.PORT || 3000; /* * Conf. the app */ app.configure(function () { app.use(express.static(__dirname + '/public')); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); }); /* * Routes */ require('./app/routes')(app); /* * Listen */ app.listen(port); console.log("App listening on port " + port);
我的Routes.js
module.exports = function (app) { app.post('/post/:name',function (req,res) { console.log("Serv get [OK]"); /* * Disparar broadcast para all */ }); app.get('/',res) { res.sendfile('./public/view/index.html'); }); }
当我的服务器收到POST时,我使用:
app.post('/post'... OR app.get('/get'...
捕捉路线?
我的角度应用可以吗?
webchatApp = angular.module("webchatApp",[]); webchatApp.controller('webchatCtrl',function ($scope,$http) { $scope.sendMsg = function () { var dados = {name:"test message"}; $http.post({url:'http://localhost/post/',data:dados}) .success(function (data) { console.log("Success" + data); }) .error(function(data) { console.log("Erro: "+data); }) }; });
错误:无法POST / [object Object]
我的帖子有问题,它会发送:[object%20Object]
解决方法
尝试改为:
$http({ method: 'POST',url: 'http://localhost/post/',data: dados }) .success(function() {}) .error(function() {});
看起来您使用了不正确的$http.post方法签名.它应该是:
$http.post('http://localhost/post/',dados) .success(...) .error(...);
$http.post('http://localhost/post/',dados) .then(function() {...}) // success .catch(function() {...}); // error