【问题标题】:Empty body POST request express空体POST请求快递
【发布时间】:2022-01-03 15:10:58
【问题描述】:

我试图设置一个快速服务器,但是我的所有 POST 请求在到达服务器后都有一个空的正文。 我尝试使用 body-parser 或 express.json() 但结果没有改变。 console.log(req.body) 只给我一个空对象 {}

数据发送没有问题,因为开发工具网络显示了我正在尝试发送的 json 对象。 express api和react网站的代码仍然相当简单,所以我不确定我在这里做错了什么:

快递api:

const bodyParser = require('body-parser');
var express = require('express');
var router = express.Router();
var app = express();

app.use(bodyParser.urlencoded({extended : false}));
app.use(bodyParser.json())
//app.use(express.json())

router.use((req,res,next)=>{
    res.header('Access-Control-Allow-Origin','*')
    res.header("Access-Control-Allow-Methods", "GET, POST");
    next()
})

router.post("/",function (req,res,next){
    console.log(req.body)
    res.send("blabla")
})

module.exports = router;

反应:

async createChat(){
        var data = {
            method:'POST',
            body:JSON.stringify()
        }
        console.log(data)
        await fetch('http://localhost:5000/create_chat',{
            method: 'POST',
            body: JSON.stringify({
                chat_name:this.state.chatName,
                password : {
                    enabled: this.state.passwordYesNo,
                    password : this.state.password
                },
                public:this.state.publicYesNo,    
            })
        })
        .then((res)=>res.text())
        .then((res)=>console.log(res))
   }

【问题讨论】:

    标签: javascript reactjs express


    【解决方案1】:

    该问题是由于 fetch 调用中缺少 headers 参数引起的。您可以像这样更新 fetch 调用并尝试。

        await fetch('http://localhost:5000/create_chat',{
            method: 'POST',
            headers: new Headers({'content-type': 'application/json'}),
            body: JSON.stringify({
                chat_name:this.state.chatName,
                password : {
                    enabled: this.state.passwordYesNo,
                    password : this.state.password
                },
                public:this.state.publicYesNo,    
            })
        })
    

    【讨论】:

    • 原来是这个问题,现在已经解决了,非常感谢!
    猜你喜欢
    • 2018-09-07
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    • 2020-07-16
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    相关资源
    最近更新 更多