我试图在可见性更改时发送POST请求(如文档中所述),但进展有限。我成功地发出了sendBeacon请求,但似乎无法在我的Node.js Express服务器上读取对象。以下是我的Send Beacon JavaScript代码:
navigator.sendBeacon("/delete-room", JSON.stringify({roomID: 'test'}))
然后,当我通过express处理它:
app.post('/delete-room', (req, res)=>{
console.log('Recieved ' + req.body)
res.status(200).end()
})
我得到了这个日志:收到 [object Object]
。
即使解析了请求体(返回错误不能解析[object Object]),我也无法读取req.body.roomID
。我还尝试将其编码为表单:
var formData = new FormData()
formData.append('roomID', 'test')
navigator.sendBeacon("/delete-room", data);
以下是翻译的结果:
这将在服务器上返回该日志:接收到 {}
。
为什么我无法接收此请求?谢谢!
app.use(bodyParser.json());
。 - Webcoder31app.use(bodyParser.raw());
(和app.use(bodyParser.json())
),它会起作用吗? - imaginate