Не могу получить содержимое XMLHttpRequest запроса

Не могу понять как увидеть содержимое XMLHttpRequest POST запроса при передачи данных с клиентского js на серверный js.
Итак на стороне клиента в js файле создан XMLHttpRequest:

 eventDrop: (info)=>{
          var request = new XMLHttpRequest(),
              path = "scheduler/eventDrop",
              updatedEvent = {
                "newStartDate": info.event._instance.range.start,
                "newEndDate": info.event._instance.range.end
              };
          request.open("POST", path, true);
          request.setRequestHeader("Content-Type", "application/json; charset=UTF-8");
          request.send(updatedEvent);
          console.log(info);
          console.log(updatedEvent);
        },

На стороне сервера запроса обрабатывается так:

router.post('/scheduler/eventDrop', (req,res)=>{
    var result = req.body;
    console.log(typeof(result));
    var data = JSON.stringify(result);
    console.log(typeof(data));
    console.log(data);
    console.log(data.newStartDate);
});

Консоль показывает что result приходит в виде object, потом после JSON.stringify(result) превращается в string, выглядит это как пустые скобки {}, а запрос console.log(data.newStartDate) выдает undefined.
Подскажите пожалуйста, в чем ошибка? Как увидеть данные из запроса? Спасибо

//========Part 2================// Совершенно уже запутался.
Итак пробую просто передать текст:
-на стороне клиента

eventDrop: (info)=>{
          var request = new XMLHttpRequest(),
              path = "scheduler/eventDrop";
          request.open("POST", path, true);
          request.setRequestHeader("Content-Type", 'text/plain');
          request.send('test');
        },

-на стороне сервера

router.post('/scheduler/eventDrop', (req,res)=>{
    var result = req.body;
    console.log(result);
    console.log(typeof(result));
});

И все равно в результате в консоли {} и тип object!!!!
Почему?!! Помогите пожалуйста.
p.s. А если меняешь header на request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded') то в консоли приходит { test: '' } //==========Решение==================//
Нужно было добавить app.use(bodyParser.json()); чтобы body-parser мог разбирать JSON при получении.


Ответы (1 шт):

Автор решения: artomich

Вам стоит передавать данные формой:

eventDrop: (info)=>{
    const request = new XMLHttpRequest(),
    let path = "scheduler/eventDrop",
    let data = new FormData();
    data.append('newStartDate', info.event._instance.range.start);
    data.append('newEndDate', info.event._instance.range.end);
    request.open("POST", path, true);
    request.send(data);
},

Если из каких-то соображений хотите именно жсон, то используйте get и интегрируйте жсон-строку в запрос

→ Ссылка