use cors middleware

This commit is contained in:
2023-12-22 13:21:28 +08:00
parent b8ebbed5d6
commit 04a2e4c12d
3 changed files with 22 additions and 10 deletions

19
cors.go Normal file
View File

@@ -0,0 +1,19 @@
package main
import (
"github.com/gin-gonic/gin"
)
func corsMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
// delete existing headers
c.Writer.Header().Del("Access-Control-Allow-Origin")
c.Writer.Header().Del("Access-Control-Allow-Methods")
c.Writer.Header().Del("Access-Control-Allow-Headers")
// set new headers
c.Writer.Header().Set("Access-Control-Allow-Origin", "*")
c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, PATCH")
c.Writer.Header().Set("Access-Control-Allow-Headers", "Origin, Authorization, Content-Type")
}
}

View File

@@ -85,12 +85,11 @@ func main() {
}) })
}) })
// CORS middleware
engine.Use(corsMiddleware())
// CORS handler // CORS handler
engine.OPTIONS("/v1/*any", func(ctx *gin.Context) { engine.OPTIONS("/v1/*any", func(ctx *gin.Context) {
header := ctx.Writer.Header()
header.Set("Access-Control-Allow-Origin", "*")
header.Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, PATCH")
header.Set("Access-Control-Allow-Headers", "Origin, Authorization, Content-Type")
ctx.AbortWithStatus(200) ctx.AbortWithStatus(200)
}) })

View File

@@ -113,12 +113,6 @@ func processRequest(c *gin.Context, upstream *OPENAI_UPSTREAM, record *Record, s
log.Println("upstream return not 200 and should not response", r.StatusCode) log.Println("upstream return not 200 and should not response", r.StatusCode)
return errors.New("upstream return not 200 and should not response") return errors.New("upstream return not 200 and should not response")
} }
r.Header.Del("Access-Control-Allow-Origin")
r.Header.Del("Access-Control-Allow-Methods")
r.Header.Del("Access-Control-Allow-Headers")
r.Header.Set("Access-Control-Allow-Origin", "*")
r.Header.Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, PATCH")
r.Header.Set("Access-Control-Allow-Headers", "Origin, Authorization, Content-Type")
if r.StatusCode != 200 { if r.StatusCode != 200 {
body, err := io.ReadAll(r.Body) body, err := io.ReadAll(r.Body)