func NewHandler(ctx cmds.Context, root *cmds.Command, cfg *ServerConfig) *Handler { if cfg == nil { cfg = &ServerConfig{} } if cfg.CORSOpts == nil { cfg.CORSOpts = new(cors.Options) } // by default, use GET, PUT, POST if cfg.CORSOpts.AllowedMethods == nil { cfg.CORSOpts.AllowedMethods = []string{"GET", "POST", "PUT"} } // by default, only let 127.0.0.1 through. if cfg.CORSOpts.AllowedOrigins == nil { cfg.CORSOpts.AllowedOrigins = localhostOrigins } // Wrap the internal handler with CORS handling-middleware. // Create a handler for the API. internal := internalHandler{ctx, root, cfg} c := cors.New(*cfg.CORSOpts) return &Handler{internal, c.Handler(internal)} }
func NewHandler(ctx cmds.Context, root *cmds.Command, cfg *ServerConfig) *Handler { if cfg == nil { panic("must provide a valid ServerConfig") } // Wrap the internal handler with CORS handling-middleware. // Create a handler for the API. internal := internalHandler{ctx, root, cfg} c := cors.New(*cfg.cORSOpts) return &Handler{internal, c.Handler(internal)} }
func main() { c := cors.New(cors.Options{ AllowedOrigins: []string{"http://foo.com"}, }) handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") w.Write([]byte("{\"hello\": \"world\"}")) }) http.ListenAndServe(":8080", c.Handler(handler)) }
func main() { c := cors.New(cors.Options{ AllowedOrigins: []string{"http://foo.com"}, }) goji.Use(c.Handler) goji.Get("/", func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") w.Write([]byte("{\"hello\": \"world\"}")) }) goji.Serve() }
func main() { c := cors.New(cors.Options{ AllowedOrigins: []string{"*"}, AllowedMethods: []string{"GET", "POST", "PUT", "DELETE"}, AllowCredentials: true, }) h := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") w.Write([]byte("{\"hello\": \"world\"}")) }) http.ListenAndServe(":8080", c.Handler(h)) }
func main() { c := cors.New(cors.Options{ AllowedOrigins: []string{"http://foo.com"}, }) mux := http.NewServeMux() mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") w.Write([]byte("{\"hello\": \"world\"}")) }) chain := alice.New(c.Handler).Then(mux) http.ListenAndServe(":8080", chain) }
func main() { c := cors.New(cors.Options{ AllowedOrigins: []string{"http://foo.com"}, }) m := martini.Classic() m.Use(render.Renderer()) m.Use(c.HandlerFunc) m.Get("/", func(r render.Render) { r.JSON(200, map[string]interface{}{"hello": "world"}) }) m.Run() }
func main() { c := cors.New(cors.Options{ AllowedOrigins: []string{"http://foo.com"}, }) mux := http.NewServeMux() mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") w.Write([]byte("{\"hello\": \"world\"}")) }) n := negroni.Classic() n.Use(c) n.UseHandler(mux) n.Run(":3000") }
func NewHandler(ctx cmds.Context, root *cmds.Command, cfg *ServerConfig) http.Handler { if cfg == nil { panic("must provide a valid ServerConfig") } // setup request logger ctx.ReqLog = new(cmds.ReqLog) // Wrap the internal handler with CORS handling-middleware. // Create a handler for the API. internal := internalHandler{ ctx: ctx, root: root, cfg: cfg, } c := cors.New(*cfg.cORSOpts) return &Handler{internal, c.Handler(internal)} }
func NewHandler(ctx cmds.Context, root *cmds.Command, allowedOrigin string) *Handler { // allow whitelisted origins (so we can make API requests from the browser) if len(allowedOrigin) > 0 { log.Info("Allowing API requests from origin: " + allowedOrigin) } // Create a handler for the API. internal := internalHandler{ctx, root} // Create a CORS object for wrapping the internal handler. c := cors.New(cors.Options{ AllowedMethods: []string{"GET", "POST", "PUT"}, // use AllowOriginFunc instead of AllowedOrigins because we want to be // restrictive by default. AllowOriginFunc: func(origin string) bool { return (allowedOrigin == "*") || (origin == allowedOrigin) }, }) // Wrap the internal handler with CORS handling-middleware. return &Handler{internal, c.Handler(internal)} }