我創建了一個簡單的Node & Express服務器來捕獲一個POST請求,并將請求主體作為回應。
這是我的后臺代碼。
const express = require('express')
const app = express()
app.listen(3000, () => console.log('listen at port 3000'))
app.use(express.static('public'))
app.use(express.json())
app.post('/api/', (req, res) => {
console.log('A post request have recieved')
console.log(req.body)
res.send('This is the body of that POST request' JSON.stringify(req.body))
})
但是當我嘗試使用帶有HTML按鈕的fetch創建相同的POST請求時,收到的請求體(我用fetch發送的)變成了空。
這里是HTML,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>fetcher</title>
</head>
<body>
<input value="click" id="btn" type="button" onclick="buttonFunc() " />
<script src="main.js"></script>
</body>
</html>
而這里是javascript的內容,
function buttonFunc() {
const data = {
name: 'john',
}
console.log('clicked')
const options = {
method: 'POST',
mode: 'no-cors',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(data)。
}
fetch('http://localhost:3000/api/', options)
.then(function (response) {
console.log(response.body)
})
.catch(function (error) {
console.error(error)
})
}
我在代碼中找不到任何錯誤。誰能幫我解決這個問題呢?
我還會附上我的瀏覽器的螢屏截圖。
而這里是一些總回應的截圖。
uj5u.com熱心網友回復:
你需要將回應轉換為json格式
fetch('http://localhost:3000/api/', options)
.then( response => response.json())
.then(json => {
console.log(json)
})
.catch(function (error) {
console.error(error)
})
uj5u.com熱心網友回復:
嘗試改變你的代碼來發送回應,就像下面這樣:
app.post('/api/', (req, res) => {
console.log('A post request have recieved')
console.log(req.body)
var resData = {
狀態。1,
訊息。"成功"。
data: req.body
};
return res.status(200).json(resData)。
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/320483.html
標籤:
