Код бэкенда:
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
. Что я делаю не так?
Проблема оказалась элементарной. Нужно было всего лишь явно указать 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}));
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Все работало нормально раньшеСовершенно случайно зашел на одну страницу и смотрю - у меня там вообще пусто, ничего не выводится кроме заголовка
Как все данные в одну ячейку массива засунуть?
Доброго времени суток! Есть сайт, например, http://mysiteru/ если к пути добавить ?d=1&search=the'"()%25alert(9925)&view=searchd то появляется окошко с надписью 9925
Необходим вывод списка всех пользователей в системе, немного не понимаю, как это сделать с фреймворком RedBeanPHPБуду очень благодарен