Я пытаюсь заставить работать простой код, но у меня есть небольшая проблема, которую я не могу понять.
Итак, я пытаюсь отправить на сервер (Express 4.16), форму в JSON, с методом POST.Мой сервер получает его (я вижу это с консольным журналом req.body), но ни один из методов res не работает (он просто проходит через него, res.send, res.json, res.redirect ... и без каких-либо ошибок..).
Вот мой код:
app.js
const express = require('express')
const path = require('path')
const app = express()
app.use(express.urlencoded({extended: false}))
app.use(express.json())
app.use('/public', express.static(path.join(__dirname, 'static')))
app.get('/', (req,res) => {
res.sendFile(path.join(__dirname, 'static', 'index.html'))
})
app.post('/', (req,res) => {
console.log(req.body)
res.send(`You did it ${req.body.name} !! `)
})
app.listen('8080')
main.js
window.addEventListener("load", function () {
let form = document.getElementById("id-form")
function sendData() {
let XHR = new XMLHttpRequest()
let data = {}
for (const input of form.getElementsByTagName('input')) {
data[input.name] = input.value
}
XHR.open('POST', '/')
XHR.setRequestHeader('Content-Type', 'application/json')
let dataToSend = JSON.stringify(data)
XHR.send(dataToSend)
}
form.addEventListener("submit", function (event) {
event.preventDefault()
sendData()
})
})
Спасибо за помощь!