Отправить post запрос на сервер nodejs
Считываю значение из input и по нажатию на кнопку, хочу отправить это значение на сервер, чтобы потом проделать махинации и вернуть результат. Но post запрос не приходит на сервер.
main.js
showRegionsBtn.addEventListener("click",()=>{
let inputValue = input.value;
var request = new XMLHttpRequest();
request.onreadystatechange = function () {
if (request.readyState == 4 && request.status == 200) {
callback(request.responseText);
}
};
console.log("передал гет")
request.open("POST","/sendRegion");
request.setRequestHeader('Content-Type', 'application/json');
var data = {inputValue};
request.send(JSON.stringify(data));
})
и попытка отладить в app.js
app.post('/sendRegion', async (req, res, next)=>{
console.log("sendRegion пришел")
console.log(`${req.body}`);
})
upd 1.o
Ответы (1 шт):
Автор решения: Eugene X
→ Ссылка
Ответ видимо очевиден...
Ты не говоришь серверу что отправляешь JSON
// open request
xhr.open('POST', 'https://reqres.in/api/login');
// set `Content-Type` header
xhr.setRequestHeader('Content-Type', 'application/json');
// send rquest with JSON payload
xhr.send(JSON.stringify(json));
А так-же не парсишь JSON на стороне сервера.
app.use(express.json());
app.post('/test', function(req,res) {
// Without `express.json()`, `req.body` is undefined.
console.log(`${req.body}`);
});
ref: