No Description

Manu Mtz.-Almeida 43967fed89 Improves unit tests 10 years ago
examples e39b91a5da Adds some documentation and README 10 years ago
README.md 43967fed89 Improves unit tests 10 years ago
config.go ee70b8845a Renames some options 10 years ago
cors.go ee70b8845a Renames some options 10 years ago
cors_test.go 43967fed89 Improves unit tests 10 years ago
utils.go ee70b8845a Renames some options 10 years ago

README.md

CORS gin's middleware

Gin middleware/handler to enable CORS support.

Usage

###Canonical example:

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()
}

###Using DefaultConfig as start point

func main() {
    router := gin.Default()
    // - No origin allowed by default
    // - GET,POST, PUT, HEAD methods
    // - Credentials share disabled
    // - Preflight requests cached for 12 hours
    config := cors.DefaultConfig()
    config.AllowOrigins = []string{"http://google.com"}
    config.AddAllowOrigins("http://facebook.com")
    // config.AllowOrigins == []string{"http://google.com", "http://facebook.com"}

    router.Use(cors.New(config))
    router.Run()
}

###Default() allows all origins

func main() {
    router := gin.Default()
    // same as
    // config := cors.DefaultConfig()
    // config.AllowAllOrigins = true
    // router.Use(cors.Default())
    router.Use(cors.Default())
    router.Run()
}