Я использую expressjs и промежуточное программное обеспечение body-parser.тело пусто при разборе DELETE-запрос с выражением и тело-парсер
Это, как я начинаю его:
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
От клиента я посылаю запрос DELETE и при попытке поднять его на стороне сервера я получаю пустой объект:
app.delete('/', function(req, res) {
console.log(util.inspect(req.body)); //outputs {}
//some more code
});
однако, когда я отправить его с POST я получаю то, что мне нужно:
app.post('/delete', function(req, res) {
console.log(util.inspect(req.body)); //outputs { mid: 'ffw1aNh2' }
//some more code
});
стоит отметить, что я не изменить что-либо на стороне клиента (angularjs), но метод и URL-адрес и сетевой отладчик firefox показывают данные, отправляемые в обеих ситуациях.
Что здесь отсутствует? Почему я получаю пустой объект тела в методе удаления?
[Это] (http://stackoverflow.com/questions/299628/is-an-entity-body-allowed -for-an-http-delete-request) может представлять интерес. – JAM
Это не помогает мне понять. Там говорится, что запросы DELETE имеют тело и, кроме того, не противоречат или не разрешаются. Так что еще больше повода думать, что объект тела не должен быть пустым, нет? –
'body-parser' не заботится о том, что HTTP-метод используется AFAIK, и он должен отлично работать с' DELETE'. Загорается ли заголовок 'Content-Type' объекта _request_? – robertklep