From ab14df043a79636e1e419ce33b458f8bf6ad7186 Mon Sep 17 00:00:00 2001 From: Kortan Date: Sat, 14 Feb 2026 16:52:07 +0800 Subject: [PATCH] fix: accept openai x-stainless-* header to fix CORS error --- backend/internal/server/middleware/cors.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/backend/internal/server/middleware/cors.go b/backend/internal/server/middleware/cors.go index 7d82f183..f1dd51af 100644 --- a/backend/internal/server/middleware/cors.go +++ b/backend/internal/server/middleware/cors.go @@ -70,7 +70,15 @@ func CORS(cfg config.CORSConfig) gin.HandlerFunc { } } - c.Writer.Header().Set("Access-Control-Allow-Headers", "Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With, X-API-Key") + allowHeaders := []string{"Content-Type", "Content-Length", "Accept-Encoding", "X-CSRF-Token", "Authorization", "accept", "origin", "Cache-Control", "X-Requested-With", "X-API-Key"} + + // openai node sdk + openAIProperties := []string{"lang", "package-version", "os", "arch", "retry-count", "runtime", "runtime-version", "async", "helper-method", "poll-helper", "custom-poll-interval", "timeout"} + for _, prop := range openAIProperties { + allowHeaders = append(allowHeaders, "x-stainless-"+prop) + } + + c.Writer.Header().Set("Access-Control-Allow-Headers", strings.Join(allowHeaders, ", ")) c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, OPTIONS, GET, PUT, DELETE, PATCH") // 处理预检请求