从客户端收到JSON后Res无法正常工作

时间:2019-03-06 22:17:31

标签: javascript node.js json express

我试图使一个简单的代码有效,但是我有一个我不明白的小问题。

因此,我正尝试使用POST方法发送到JSON形式的服务器(Express 4.16)。我的服务器收到了它(我可以在控制台日志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 :(得分:0)

您没有在XHR.send(dataToSend)中处理来自服务器的响应,但是您应该能够在Chrome Devtools(或其他浏览器中的等效地址)上的“网络”标签中看到响应。