fix: 修复 AI 搜索 API 请求方法不匹配问题
将 n8n webhook 调用从 POST 改为 GET 请求,参数通过 URL query string 传递,与 n8n webhook 配置保持一致。 Co-Authored-By: Claude (glm-4.7) <noreply@anthropic.com>
This commit is contained in:
@@ -15,25 +15,27 @@ export async function POST(request: Request) {
|
||||
// 验证查询参数
|
||||
const validatedQuery = ProjectQuerySchema.parse(body)
|
||||
|
||||
// 转发到 n8n 工作流
|
||||
const n8nResponse = await fetch(N8N_WEBHOOK_URL, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
query: validatedQuery.search,
|
||||
locale: body.locale || 'zh',
|
||||
limit: validatedQuery.limit || 20,
|
||||
filters: {
|
||||
tags: validatedQuery.tags,
|
||||
status: validatedQuery.status
|
||||
}
|
||||
})
|
||||
// 构建 n8n webhook URL(使用 GET 请求 + query string)
|
||||
const searchParams = new URLSearchParams({
|
||||
desc: validatedQuery.search || '',
|
||||
limit: String(validatedQuery.limit || 20),
|
||||
})
|
||||
|
||||
// 如果有标签过滤,添加到参数中
|
||||
if (validatedQuery.tags && validatedQuery.tags.length > 0) {
|
||||
searchParams.set('tags', validatedQuery.tags.join(','))
|
||||
}
|
||||
|
||||
const n8nUrl = `${N8N_WEBHOOK_URL}?${searchParams.toString()}`
|
||||
|
||||
// 转发到 n8n 工作流(使用 GET 请求)
|
||||
const n8nResponse = await fetch(n8nUrl, {
|
||||
method: 'GET',
|
||||
})
|
||||
|
||||
if (!n8nResponse.ok) {
|
||||
throw new Error(`n8n webhook failed: ${n8nResponse.statusText}`)
|
||||
const errorText = await n8nResponse.text()
|
||||
throw new Error(`n8n webhook failed: ${n8nResponse.statusText} - ${errorText}`)
|
||||
}
|
||||
|
||||
const results = await n8nResponse.json()
|
||||
|
||||
Reference in New Issue
Block a user