我有一个React应用前端将数据发布到部署在Heroku上的服务器(使用Express)。当客户端和服务器都在本地主机上运行时,代码运行良好,但是在Heroku上时,req.body始终获取空对象{}。 谁能指出这里出了什么问题?在此先感谢:)
反应代码:
axios.post("/api", data, {headers: { "Content-Type": "application/json;charset=utf-8" }})
快捷代码:
const express = require("express");
const cors = require("cors");
const bodyParser = require("body-parser");
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(
cors({origin: URL,credentials: true}));
app.post("/api", (req, res) => {const data = req.body; console.log(data);};
答案 0 :(得分:-1)
这在我的计算机上完美运行。日志和响应工作正常。希望能帮助到你。我认为问题可能出在您发送的是GET请求而不是POST请求。
const express = require("express");
const cors = require("cors");
const bodyParser = require("body-parser");
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cors({origin: new URL('http://localhost:3000'), credentials: true})) // Add this 'new' keyword to URL
app.post("/api", (req, res) => {
const data = req.body
console.log(data)
res.send(data) // Added this to allow request to end
})
// Added this part to start the server listen.
const port = process.env.PORT || 3000
app.listen(port , () => {
console.log('Server is running on port '+3000)
})