diff --git a/pkg/errors/handler.go b/pkg/errors/handler.go index a188ada..5b56733 100644 --- a/pkg/errors/handler.go +++ b/pkg/errors/handler.go @@ -111,12 +111,14 @@ func handleError(c *fiber.Ctx, err error, logger *zap.Logger) error { } // 6. 返回统一 JSON 响应 - return c.Status(httpStatus).JSON(fiber.Map{ + errResp := c.Status(httpStatus).JSON(fiber.Map{ "code": code, "data": nil, "msg": message, "timestamp": time.Now().Format(time.RFC3339), }) + c.Set(fiber.HeaderContentType, "application/json; charset=utf-8") + return errResp } // safeLog 安全地记录日志,日志失败时静默处理(默认 Error 级别) diff --git a/pkg/response/response.go b/pkg/response/response.go index 76876e6..88d8525 100644 --- a/pkg/response/response.go +++ b/pkg/response/response.go @@ -17,22 +17,26 @@ type Response struct { // Success 返回成功响应 func Success(c *fiber.Ctx, data any) error { - return c.JSON(Response{ + err := c.JSON(Response{ Code: errors.CodeSuccess, Data: data, Message: "success", Timestamp: time.Now().Format(time.RFC3339), }) + c.Set(fiber.HeaderContentType, "application/json; charset=utf-8") + return err } // SuccessWithMessage 返回带自定义消息的成功响应 func SuccessWithMessage(c *fiber.Ctx, data any, message string) error { - return c.JSON(Response{ + err := c.JSON(Response{ Code: errors.CodeSuccess, Data: data, Message: message, Timestamp: time.Now().Format(time.RFC3339), }) + c.Set(fiber.HeaderContentType, "application/json; charset=utf-8") + return err } // PaginationData 分页数据结构 @@ -45,7 +49,7 @@ type PaginationData struct { // SuccessWithPagination 返回分页响应 func SuccessWithPagination(c *fiber.Ctx, items any, total int64, page, size int) error { - return c.JSON(Response{ + err := c.JSON(Response{ Code: errors.CodeSuccess, Data: PaginationData{ Items: items, @@ -56,4 +60,6 @@ func SuccessWithPagination(c *fiber.Ctx, items any, total int64, page, size int) Message: "success", Timestamp: time.Now().Format(time.RFC3339), }) + c.Set(fiber.HeaderContentType, "application/json; charset=utf-8") + return err }