GET请求适用于Chrome,但不适用于Postman

时间:2018-11-16 16:09:35

标签: mongodb api request postman

我正在尝试从MongoDB / AngularJS应用程序中获取这些称为“卡片”的项目。但仅限已归档的。架构/架构如下:

API路线:

router.get('/showArchivedCard/:idParam', (req, res) => {
var body = req.body;
conn.getConnection(req, res, 'ListModel', function (ListModel) {
    ListModel.find({status:'active', _id:req.params.idParam, 'cards.status':'archived',  'cards._id':body._id}, (err, data) => {
        if (err) {
            return  res.status(500).json({ error: true, data: err });
        }
        return  res.status(201).json({ error: false, data: data });
    });
});});

API的东西(我不知道这叫什么):

    let _getArchivedCard = (listId, cardId) => {

    return $http({
        method  : 'GET',
        url     : EasyTask.API + '/api/v3/list/showArchivedCard/' + listId, 
        data:   cardId,
        headers :  { 'Content-Type':'application/json', 'tokenName' :EasyTask.tokenName},
        async   : true          
    });
};

DB model/schema + Postman API call

Postman return (returns correctly what I want)

Chrome API call

Chrome API return

很抱歉,如果这个问题太模糊或令人费解,我不知道如何简短而实用地解释这种复杂的情况,这也是我的第一个问题。如果有任何我遗漏的信息或我错过的任何内容,请告诉我。

1 个答案:

答案 0 :(得分:0)

在路由器下放置console.log(req.body)之后,我发现GET方法显然不允许使用主体,因此我基本上发送了一个空查询。我不知道为什么它可以在Postman上工作,但是我要做的就是将API中使用的方法更改为router.post而不是router.get