簡體   English   中英

angular.js http.POST不包含任何數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM