我有一個客戶端腳本正在運行以將字串“Y”發送到服務器。我在客戶端(您可以在下面看到)設定了一個 console.log,在服務器端設定了另一個。客戶端的一個作業,但一個記錄“空”物件..它只顯示“{}”。如何讓我的資料留在物件中?
const status = "Y";
const options = {
method: 'POST',
headers: {
'Content-type': 'application/json'
},
body: status
fetch('/events/<%- event.id %>/prompt', options)
console.log(options.body)
這是我的背景關系路線:
router.route('events/:id/prompt')
.get(catchAsync(events.showPrompt))
.post(catchAsync(events.checkIn))
還有我的控制器:
module.exports.checkIn = async(req, res) => {
console.log(req.body);
}
如何讓物件通過服務器?
uj5u.com熱心網友回復:
狀態是一個字串。但是 body 必須接受一個帶有鍵值對的物件。如果像下面一樣發送,那么您將獲得包含后端狀態的物件。
body: {status: status}
uj5u.com熱心網友回復:
問題來自:
- Client : 你選擇Content-type': 'application/json',所以你的 body 必須是 json 格式,類似于 body : { status }。確保您使用瀏覽器除錯發送了準確的物件,因為某些呼叫 api 包可以更改請求的值。
- 服務器:一些 nodejs 框架需要在讀取之前決議從客戶端發送的值(Exp : app.use(express.json()) with Express)
uj5u.com熱心網友回復:
- “Y”不是有效的 JSON。JSON 字串包含值陣列或物件。例如
{"Y": 0} 或者 ["Y"]
- 您需要
bodyParser.json()在服務器上使用類似的東西來將字串表示實際轉換回物件或陣列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/351319.html
標籤:javascript 表达
