Получите пустой req.body при развертывании на Heroku - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть приложение, реагирующее на приложение, отправляющее данные на мой сервер (используйте express), развернутое в Heroku. Код хорошо работает, когда клиент и сервер работают на локальном хосте, но когда он на Heroku, req.body всегда получает пустой объект {}. Кто-нибудь может указать, что здесь происходит не так? Заранее спасибо:)

Код реагирования:

axios.post("/api", data, {headers: { "Content-Type": "application/json;charset=utf-8" }})

Express код:

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 голосов
/ 15 апреля 2020

Это отлично работает на моем компьютере. Журнал и ответ работает просто отлично. Надеюсь, поможет. Я думаю, что проблема может быть в том, что вы отправляете запрос 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)
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...