123456789101112131415161718192021222324252627 |
- package rest
- import "net/http"
- const (
- allowOrigin = "Access-Control-Allow-Origin"
- allOrigins = "*"
- allowMethods = "Access-Control-Allow-Methods"
- allowHeaders = "Access-Control-Allow-Headers"
- headers = "Content-Type, Content-Length, Origin"
- methods = "GET, HEAD, POST, PATCH, PUT, DELETE"
- )
- // CorsHandler handles cross domain OPTIONS requests.
- // At most one origin can be specified, other origins are ignored if given.
- func CorsHandler(origins ...string) http.Handler {
- return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- if len(origins) > 0 {
- w.Header().Set(allowOrigin, origins[0])
- } else {
- w.Header().Set(allowOrigin, allOrigins)
- }
- w.Header().Set(allowMethods, methods)
- w.Header().Set(allowHeaders, headers)
- w.WriteHeader(http.StatusNoContent)
- })
- }
|