Dashboard: a successful response whose JSON does not parse is treated as an empty success

未关闭 适合新手
#1,039 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
88/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
typescript
领域
frontend

调研方向

首先阅读 frontend/src/services/api.ts 中 readSuccessBody 附近及其正上方的非 JSON 错误分支。确认空的 204/205 响应被单独处理,然后更改格式错误的 JSON 路径,使其抛出相同类型的路径特定 ApiError。使用相关的前端服务测试进行验证,包括正文被截断或无效的 2xx JSON 响应。

由索引模型根据 Issue 内容生成。

描述

bug post-launch

readSuccessBody in frontend/src/services/api.ts (lines ~370-375) returns undefined when a 2xx response with a JSON content type has a body that does not parse:

try {
  return (await response.json()) as T;
} catch {
  return undefined as T;
}

So a truncated or malformed successful body is treated as a successful empty result. The caller then shows success, or fails later on a property of undefined with a message that does not say what went wrong. Empty 204/205 responses are already handled before this point and are not affected.

Expected: a body that the content type says is JSON but that does not parse raises an ApiError naming the path (as the non-JSON branch above already does), so the page shows a clear error. Found in a code review (2026-10-06); no user report.

主要语言
Python
星标
0
派生
4
平均合并
6 小时 5 分钟
30 天内合并 PR
453

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

Controlvar/controlvar 的其他 Issue

查看 Controlvar/controlvar 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。