Не приходит сообщение в post запросе

231
08 декабря 2017, 05:42

Код бэкенда:

const Koa = require('koa');
const Router = require('koa-router');
const app = new Koa();
const router = new Router();
app.use(require('koa-static')('./public'));
app.use(require('koa-bodyparser')());
router.post('/send', async (ctx) => {
    const message = ctx.request.body.message;
    console.log(message);
});
app.use(router.routes());
app.listen(3000, () => {
    console.log('server started!');
});

С клиента запрос отправляется так:

publish.onsubmit = function() {
    const xhr = new XMLHttpRequest();
    xhr.open("POST", "/send", true);
    xhr.send(JSON.stringify({message: this.elements.message.value}));
    this.elements.message.value = '';
    return false;
};

Запросы уходят успешно с сообщениями. Приходят и успешно ловятся роутером, но console.log(message) постоянно undefined. Что я делаю не так?

Answer 1

Проблема оказалась элементарной. Нужно было всего лишь явно указать Content-Type в клиенте:

const xhr = new XMLHttpRequest();
xhr.open("POST", "/send", true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON.stringify({message: this.elements.message.value}));
READ ALSO
Ошибка при рендеринге поля

Ошибка при рендеринге поля

Все работало нормально раньшеСовершенно случайно зашел на одну страницу и смотрю - у меня там вообще пусто, ничего не выводится кроме заголовка

231
Как с нескольких ячеек массива собрать данные в одну?

Как с нескольких ячеек массива собрать данные в одну?

Как все данные в одну ячейку массива засунуть?

149
как защититься от xss атаки в url-ах,

как защититься от xss атаки в url-ах,

Доброго времени суток! Есть сайт, например, http://mysiteru/ если к пути добавить ?d=1&search=the'"()%25alert(9925)&view=searchd то появляется окошко с надписью 9925

187
Помогите Notice: Trying to get property of non-object

Помогите Notice: Trying to get property of non-object

Необходим вывод списка всех пользователей в системе, немного не понимаю, как это сделать с фреймворком RedBeanPHPБуду очень благодарен

163