我有调用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
中的参数?有谁知道如何通过它?
答案 0 :(得分:4)
HTTP规范允许DELETE的主体,但是一些客户端不发送它们,并且一些代理/服务器将剥离/忽略它们(如果存在)。这应该可以将它作为查询字符串参数传递:
return $http.delete(url, {params: {'currentFieldSetFlag':flag}});