此問題可能之前已被回覆,但似乎無法找到正確的答案。我正在創建一個Ionic項目,我在其中創建了另一個使用Node.js和express.js處理所有http請求的項目。目前兩者都在本地主機上運行。當我試圖從客戶端發送一些數據到服務器端時,我從請求中獲得的數據看起來像這樣當我console.log(req.body):無法從服務器端使用Ionic和Express.js從客戶端獲取數據
{ '{"username":"[email protected]"}': '' }
我試了兩個req.body [用戶名]等等來獲取數據,但它只是得到了未定義。
我來處理HTTP請求的控制器是這樣的:
$scope.submit = function(){
var username = $scope.username;
console.log($scope.data.username);
$http({
method: 'POST',
url: 'http://localhost:8000/api/users',
data: username,
headers: {'Content-Type': 'application/x-www-form-urlencoded', 'Access-Control-Allow-Origin': '*'}
});
HTML元素
<input type="text" ng-model="data.username" name="name">
服務器端API看起來是這樣的:
router.post('/users', function (req, res) {
var username = req.body;
var newUser = new User({
username: username
})
newUser.save(function (err) {
if (err) {
return res.send(500, err);
}
return res.json(200, newUser);
});
});
Server.js bodyparser包括
app.use(bodyParser.json());
app.use(bodyParser.json({ type: 'application/vnd.api+json' }));
app.use(bodyParser.urlencoded({ extended: true }));
你能告訴我們你的控制器中存儲了什麼用戶名 – turmuka