Res не работает после получения JSON от клиента - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь заставить работать простой код, но у меня есть небольшая проблема, которую я не могу понять.

Итак, я пытаюсь отправить на сервер (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()
	})
})

Спасибо за помощь!

1 Ответ

0 голосов
/ 07 марта 2019

Вы не обрабатываете ответ от сервера в XHR.send(dataToSend), но вы должны увидеть ответ на вкладке сети в Chrome Devtools (или его эквиваленте в другом браузере).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...