gpt4 book ai didi

javascript - Express 应用程序上的空请求正文

转载 作者:行者123 更新时间:2023-11-30 11:24:22 26 4
gpt4 key购买 nike

当尝试对 express.js 服务器进行 POST 调用时,正文为空。

我正在使用 React 和 Express,所以我必须启用 CORS 以允许来自不同服务器的调用。代码如下:

express

var express = require("express"),
app = express(),
bodyParser = require("body-parser"),
cors = require("cors");

app.use(bodyParser.urlencoded({extended: true}));
app.use(cors());

app.post("/register", function(req, res){
console.log(req);
});

app.listen(3000, function(){
console.log("test started");
})

react

handleSubmit(event){
console.log(this.state);
fetch('http://localhost:3000/register', {
method: 'POST',
headers: {
'Accept': 'application/json'
},
body: {
username: "asd",
password: "asdd",
}
});
event.preventDefault();
}

我在这里错过了什么?我用 'Content-Type': 'application/json' 完成了,结果是一样的。

最佳答案

您没有告诉您的 Express 服务器您将使用 JSON。为此,您需要在定义任何路由之前添加这一行:

app.use(bodyParser.json());

除此之外,您还需要JSON.stringify React 组件handleSubmit 方法中的正文有效负载,因为就目前而言,它不是有效的JSON。

最后,您必须设置的正确 header 是:

 'Content-Type': 'application/json'

因此您告诉服务器您正在发送 JSON 正文有效负载。

关于javascript - Express 应用程序上的空请求正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48570361/

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