[英]angular.js http.POST contains no data
我開始學習MEAN堆棧,因此對此道歉是一個愚蠢的問題。 我正在為自己的項目改編一些教程,並為書籍數據庫制作了一個簡單的REST api。
// add book and return updated list
app.post('/api/books', function(req, res) {
console.log("New book: ", JSON.stringify(req.body, null, 4));
Book.create({
title: req.body.title,
author: req.body.author,
pageCount: 100,
}, function(err, book) {
if (err)
res.send(err);
// get and return updated list
Book.find(function(err, books) {
if (err)
res.send(err);
res.json(books);
});
});
});
我正在嘗試使用angular與此接口,例如:
$scope.createBook = function() {
console.log('Trying to create ', $scope.formData);
$http({ method: 'POST', url: '/api/books', data: $scope.formData}).then(function (response) {
$scope.formData = {}; // reset form
console.log('CREATE Success: ', response);
}, function (error) {
console.log('CREATE Error: ', error);
});
};
我從createBook
獲得的輸出正在Trying to create – {title: "amazingTitle", author: "amazingAuthor"}
,這是應該的,但是API處理程序的輸出是New book: {}
,其中當然不是我想要的。 我意識到這可能還不夠詳細,但是我在哪里可能出錯呢?
事實證明,body-parser設置存在錯誤,我只將應用設置為使用urlencoded,而不是json。
JSON.stringify()您的數據。
cf AngularJS-$ http.post將數據作為json發送
我的POST呼叫通常采用以下形式:
$http({method: 'POST', url: url, headers: headers, data: JSON.stringify(request)}).then(function(response) {
var data = response.data;
// do something
}, function(error) {
// do something
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.