gpt4 book ai didi

javascript - POST 请求未填充正文

转载 作者:行者123 更新时间:2023-12-02 22:37:22 24 4
gpt4 key购买 nike

我在从客户端向服务器端发送信息时遇到问题。

在我的应用程序中,我有一个要提交到我的服务器的表单。因为我使用 lib 从 json 架构文件自动生成表单,所以我必须手动提交表单,基本上是使用我的对象发出 post 请求。到目前为止一切顺利,但是我的请求到达后端时主体为空。

客户发帖请求:

const test = {
name: "hello"
}
axios.post("http://localhost:8000/my-route/test", test)
.then(res => console.log("res.data", res.data));

服务器路由定义

app.set("view engine", "ejs");
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static("public"));
app.use(cors());

/* ... */

app.post("/my-route/:type", (req, res) => {
if (!req.params.type) {
res.send({
err: "Please provide type"
});
} else {
console.log('req.body', req.body);

res.send({
sucess: "Generating type " + req.params.type
});
}
});

我在后端的日志生成 req.body {} 而不是 req.body { name: "hello"}

如果我决定 JSON.stringify(test),那么我的日志将变为 req.body { '{"name":"hello"}': '' },这并不是我真正想要的。

最佳答案

axios 请求正在发送 JSON 有效负载。但是,您的服务器不解析 JSON;它只解析 URL 编码的主体。您需要添加此中间件:

app.use(bodyParser.json());

因为您没有该解析器,所以您的 bodyParser.urlencoded(...) 中间件仅使用空对象填充 req.body

关于javascript - POST 请求未填充正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58701805/

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