发送PATCH请求出现net::ERR_CONNECTION_REFUSED但服务器已接收请求的原因
客户端报连接拒绝但服务器能接收请求的原因分析
- 核心原因:服务器处理完请求后未返回任何响应,导致客户端请求超时被断开。
- 详细说明:当客户端通过
fetch发起请求时,会与服务器建立HTTP连接并等待服务器返回状态码及响应内容。你的服务器代码仅执行了console.log(req.body),没有调用res.send()、res.json()或res.end()这类方法来结束响应周期,连接会一直处于挂起状态,浏览器最终判定连接失败,抛出net::ERR_CONNECTION_REFUSED错误。 - 解决方案:在服务器的PATCH路由处理函数中添加响应语句,示例如下:
app.patch('/api/data', (req, res) => { console.log(req.body) // 返回成功状态及响应内容 res.status(200).json({ message: '数据更新成功' }) // 若无需返回内容,可使用204状态码 // res.sendStatus(204) })
内容的提问来源于stack exchange,提问作者Vayun
相关产品推荐
相关产品推荐

