我試圖設定一個快速服務器,但是一旦到達服務器,我的所有 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))
}
uj5u.com熱心網友回復:
該問題是由 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,
})
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/402363.html
標籤:
