From d8a7872cd2d279709aad3081ed5630f2f8920918 Mon Sep 17 00:00:00 2001 From: yuzhiran Date: Fri, 3 Jul 2026 15:52:35 +0800 Subject: [PATCH] fix: interview create returns HTTP 201, frontend only accepted 200 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit NestJS POST 默认返回 201 Created,前端 startInterview() 和 sendAnswer() 只判断 statusCode === 200 导致成功创建也落入 else 分支显示创建面试失败。改为 >= 200 && < 300。 --- zhiyin-app/src/pages/interview/interview.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zhiyin-app/src/pages/interview/interview.vue b/zhiyin-app/src/pages/interview/interview.vue index 41350dd..facac75 100644 --- a/zhiyin-app/src/pages/interview/interview.vue +++ b/zhiyin-app/src/pages/interview/interview.vue @@ -224,7 +224,7 @@ const startInterview = async () => { header: { 'Authorization': `Bearer ${token()}`, 'Content-Type': 'application/json' }, data: { position: position.value }, }) - if (res.statusCode === 200 && res.data) { + if (res.statusCode >= 200 && res.statusCode < 300 && res.data) { interviewId.value = res.data.id messages.value = res.data.messages || messages.value answeredCount.value = res.data.questionCount || 0 @@ -274,7 +274,7 @@ const sendAnswer = async () => { header: { 'Authorization': `Bearer ${token()}`, 'Content-Type': 'application/json' }, data: avatarMode.value ? { answer, avatar: true } : { answer }, }) - if (res.statusCode === 200 && res.data?.messages) { + if (res.statusCode >= 200 && res.statusCode < 300 && res.data?.messages) { const aiMsg = res.data.messages.find(m => m.role === 'ai') // Only push AI messages from response to avoid duplicating the user message already added above const newAiMessages = res.data.messages.filter(m => m.role === 'ai')