Go gin framework CORS

前端 未结 7 1361
逝去的感伤
逝去的感伤 2020-12-08 21:05

I\'m using Go gin framework gin

func CORSMiddleware() gin.HandlerFunc {
    return func(c *gin.Context) {
        c.Writer.Header().Set(\"Content-Type\", \"a         


        
7条回答
  •  囚心锁ツ
    2020-12-08 21:13

    There is also official gin's middleware for handling CORS requests github.com/gin-contrib/cors.

    You could install it using $ go get github.com/gin-contrib/cors and then add this middleware in your application like this: package main

    import (
        "time"
    
        "github.com/gin-contrib/cors"
        "github.com/gin-gonic/gin"
    )
    
    func main() {
        router := gin.Default()
        // CORS for https://foo.com and https://github.com origins, allowing:
        // - PUT and PATCH methods
        // - Origin header
        // - Credentials share
        // - Preflight requests cached for 12 hours
        router.Use(cors.New(cors.Config{
            AllowOrigins:     []string{"https://foo.com"},
            AllowMethods:     []string{"PUT", "PATCH"},
            AllowHeaders:     []string{"Origin"},
            ExposeHeaders:    []string{"Content-Length"},
            AllowCredentials: true,
            AllowOriginFunc: func(origin string) bool {
                return origin == "https://github.com"
            },
            MaxAge: 12 * time.Hour,
        }))
        router.Run()
    }
    

提交回复
热议问题