如何发布JSON对象angularjs

我想发布对象,并在节点服务器上读取它,但我有一个错误。

控制器:

$scope.update = function(contact) { console.log(contact); $http.post('/contactlist/' + contact).then(function(response) { console.log(response); }); }; 

服务器节点:

 app.post('/contactlist/:contact', function (req, res, next) { console.log(req.body); res.json(); }); 

服务器节点头:

 var express = require('express'); var app = express(); var mysql = require('mysql'); var bodyParser = require('body-parser'); var connection = ***************** app.use(bodyParser.json()); // for parsing application/json app.use(bodyParser.urlencoded({extended:false})); app.use(express.static(__dirname + "/public")); 

错误networkingPOST的屏幕截图: 在这里input图片描述

console.log(req.body)的服务器错误;

[object Object] SyntaxError: Unexpected token o in JSON at position 1

你没有在你的post API中传递任何参数。 POST需要传递一个参数,并且由于您在请求URL中传递了参数,所以可以通过传递一个空对象来尝试这样做:

  $http.post('/contactlist/' + contact,{}).then(function(response) { console.log(response); }); 

您试图在URL中连接一个对象,这不是一个好方法。 如果你仍想这样做,将其string化,然后将其附加到URL。 你可以在req.query的帮助下得到它。 但是,如果更改url并将联系人作为parameter passing给API调用,则会更好。

问题解决了:

 var OBJ = JSON.stringify(yourOBJ); 

对于节点js有不同的语法,请看下面:

 var yourObj = {}; $http.post('/contactlist/' + contact, {data: yourObj}).then(function(response) { console.log(response); }); 

这将工作