Nav apraksta

Bo-Yi Wu 764baefb88 update readme for relase v1.0 10 gadi atpakaļ
examples 764baefb88 update readme for relase v1.0 10 gadi atpakaļ
.gitignore dbe5075495 add git ignore file. 10 gadi atpakaļ
.travis.yml aaa5473637 update testing version to 1.7.3 10 gadi atpakaļ
LICENSE 14d8c87c42 add MIT License. 10 gadi atpakaļ
README.md 764baefb88 update readme for relase v1.0 10 gadi atpakaļ
config.go 858b4d41a5 import stable version of gin. 10 gadi atpakaļ
cors.go 858b4d41a5 import stable version of gin. 10 gadi atpakaļ
cors_test.go 858b4d41a5 import stable version of gin. 10 gadi atpakaļ
utils.go ee70b8845a Renames some options 11 gadi atpakaļ

README.md

CORS gin's middleware

Build Status codecov Go Report Card GoDoc

Gin middleware/handler to enable CORS support.

Usage

Start using it

  1. Download and install it:
$ go get gopkg.in/gin-contrib/cors.v1
  1. Import it in your code:
import "gopkg.in/gin-contrib/cors.v1"

Canonical example:

package main

import (
	"time"

	"gopkg.in/gin-contrib/cors.v1"
	"gopkg.in/gin-gonic/gin.v1"
)

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.New(config))
	router.Use(cors.Default())
	router.Run()
}