From 8e4213e6345f575fb1dbcbef2daad5805ebc9142 Mon Sep 17 00:00:00 2001 From: Wenyan Date: Thu, 30 Oct 2025 15:16:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=A0=E9=99=A4=E5=AF=B9?= =?UTF-8?q?=E8=AF=9D=E6=97=B6=E6=8A=A5500=E9=94=99=E8=AF=AF=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题: - 删除对话实际成功但前端报错"Failed to delete conversation: 500" - Dify删除API返回的可能不是JSON格式(空响应或文本) - 原代码直接调用response.json()导致解析失败抛出异常 修复: 1. 添加Content-Type检查,只有JSON才解析 2. 非JSON响应直接返回成功标识 { result: 'success' } 3. 添加详细日志方便调试 现在删除对话能正确显示成功,无需刷新页面 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- app/services/dify-client.server.ts | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/app/services/dify-client.server.ts b/app/services/dify-client.server.ts index 559967b..e03c64f 100644 --- a/app/services/dify-client.server.ts +++ b/app/services/dify-client.server.ts @@ -202,11 +202,35 @@ export const difyClient = { // user 字段已移除,后端会自动从 JWT 中提取 username const body = {}; + console.log('🗑️ [DifyClient] 删除会话:', conversationId); + const response = await difyFetch(`conversations/${conversationId}`, { method: 'DELETE', body: JSON.stringify(body), }, jwt); - return response.json(); + + console.log('🗑️ [DifyClient] 删除会话响应:', { + status: response.status, + statusText: response.statusText, + contentType: response.headers.get('Content-Type') + }); + + // 检查响应的Content-Type + const contentType = response.headers.get('Content-Type'); + + // 如果是JSON响应,解析JSON + if (contentType && contentType.includes('application/json')) { + const data = await response.json(); + console.log('🗑️ [DifyClient] 删除会话JSON响应:', data); + return data; + } + + // 如果不是JSON,返回成功标识 + const text = await response.text(); + console.log('🗑️ [DifyClient] 删除会话文本响应:', text); + + // 返回标准成功响应 + return { result: 'success' }; }, // 更新消息反馈