为什么我在AngularJs中的http.delete时无法传递参数?

时间:2015-09-16 18:15:40

标签: javascript angularjs http

我有调用http.delete并传递参数标志的函数:

function softDeleteDatasource(datasourceId,flag) {
            var url = baseUrl + datasourceId;
            return $http.delete(url, {'currentFieldSetFlag':flag});
        }

然后我假设我可以使用以下代码获取req.body。但是,我总是在undefined中获得console.log。我在http.post中使用了完全相同的代码,并且在传递参数时工作正常。

var bodyParser = require('body-parser');
var jsonParser = bodyParser.json();
router.delete('/:datasourceId', jsonParser, function(req, res) {
   console.log(req.body.currentFieldSetFlag);
}

我很困惑为什么相同的代码无法传递http.delete中的参数?有谁知道如何通过它?

1 个答案:

答案 0 :(得分:4)

HTTP规范允许DELETE的主体,但是一些客户端不发送它们,并且一些代理/服务器将剥离/忽略它们(如果存在)。这应该可以将它作为查询字符串参数传递:

return $http.delete(url, {params: {'currentFieldSetFlag':flag}});