如何发布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); });
这将工作