部署在Heroku上时获取空的req.body

时间:2020-04-14 12:38:28

标签: node.js express heroku

我有一个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);};

1 个答案:

答案 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)
})
相关问题