Files
pit-router/docs/ISSUES.md
小白 7d747fd33a docs: 新增问题记录文档
- 新增 docs/ISSUES.md 问题记录文档
- 记录问题 #001:新建机器人报 Failed to fetch 错误
- 包含问题现象、原因分析、解决方案
- 提供问题记录模板
2026-03-15 13:31:07 +08:00

167 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 问题记录文档
> 记录智队中枢项目开发过程中发现的问题、原因分析和解决方案
---
## 问题 #001新建机器人报 "Failed to fetch" 错误
### 问题现象
**发现时间**2026-03-15
**发现版本**v0.9.8
**问题描述**
用户在智队中枢 Web 页面点击「新建机器人」按钮,填写表单提交后,前端报错:
```
Failed to fetch
```
**影响范围**
- 新建机器人功能
- 所有 `/api/bots` 相关请求
---
### 问题原因
**根本原因**Flask 路由尾部斜杠不一致导致 301 重定向
**详细分析**
| 组件 | 路径 | 说明 |
|------|------|------|
| Flask 蓝图注册 | `url_prefix='/api/bots'` | 无尾部斜杠 |
| Flask 路由定义 | `@bots_bp.route('/')` | 有前导斜杠 |
| 实际完整路径 | `/api/bots/` | **有尾部斜杠** |
| 前端请求路径 | `fetch('/api/bots')` | **无尾部斜杠** |
**错误流程**
```
1. 前端发送 POST /api/bots无尾部斜杠
2. Flask 返回 301 重定向 → /api/bots/(有尾部斜杠)
3. POST 请求被重定向时:
- 某些浏览器会将 POST 改为 GET
- fetch API 无法正确处理重定向
4. 前端报错 "Failed to fetch"
```
**验证结果**
```bash
# 不带尾部斜杠 → 301 重定向
curl -X POST http://localhost:9000/api/bots
# 返回: Redirecting to /api/bots/
# 带尾部斜杠 → 正常响应
curl -X POST http://localhost:9000/api/bots/
# 返回: {"msg": "Not enough segments"} # 正常的 JWT 错误
```
---
### 解决方案
**方案一:前端修改(推荐)**
修改 `frontend/src/components/chat/CreateBotModal.vue`
```typescript
// 修改前
const response = await fetch('/api/bots', {
// 修改后
const response = await fetch('/api/bots/', {
```
**方案二:后端修改**
修改 `app/routes/bots.py`
```python
# 修改前
@bots_bp.route('/', methods=['POST'])
# 修改后
@bots_bp.route('', methods=['POST'])
```
**方案三Flask 配置(全局生效)**
`app/__init__.py` 中添加:
```python
app.url_map.strict_slashes = False
```
---
### 解决状态
| 状态 | 日期 |
|------|------|
| ⏳ 待修复 | - |
---
## 问题记录模板
```markdown
## 问题 #XXX[问题标题]
### 问题现象
**发现时间**YYYY-MM-DD
**发现版本**vX.X.X
**问题描述**
[描述问题现象]
**影响范围**
- [影响的功能模块]
---
### 问题原因
**根本原因**[一句话概括]
**详细分析**
[详细的原因分析]
---
### 解决方案
**方案**[解决方案描述]
**代码修改**
```语言
// 修改前
[代码]
// 修改后
[代码]
```
---
### 解决状态
| 状态 | 日期 |
|------|------|
| ✅ 已修复 | YYYY-MM-DD |
---
```
---
_文档创建时间2026-03-15 | 维护者:小白 🐶_