gpt4 book ai didi

javascript - Express.js POST 空 req.body

转载 作者:行者123 更新时间:2023-12-03 07:05:33 24 4
gpt4 key购买 nike

无法通过简单搜索解决此问题。谁能说得更清楚一点吗?

在客户端中,我尝试将对象附加到 xhr.send(obj)。目前尝试附加到 formData 对象,结果相同...客户端代码:

var xhr = new XMLHttpRequest()    
xhr.open("post", "/api/test", true)

var formData = new FormData()
formData.append("hi", "hello")

xhr.send(formData)

xhr.onreadystatechange = function() {
if (this.readyState != 4)
return
if (this.status != 200) return console.error(this.status + this.statusText)
else console.log(this.responseText)
}

在后端,我试图以这种方式获取 req.body:

const express = require('express'),
app = express(),
http = require('http'),
path = require('path'),
bodyParser = require('body-parser')

app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: false }))

app.use(express.static('public'))

app.get('/', function(req, res) {
res.sendFile(path.resolve("/public/index.html"))
})

app.post('/api/test', (req, res) => {
console.log(req.body)
res.end()
})

不明白为什么,但每次我只打印出空对象。我已经检查过几次前端发送对象。

感谢任何帮助。

最佳答案

您可以尝试添加:

//Send the proper header information along with the request
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

像这样的express(主体解析器)理解它必须解析传入的数据。

关于javascript - Express.js POST 空 req.body,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36842998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com