mirror of
https://github.com/openfaas/faas.git
synced 2025-06-14 11:16:47 +00:00
27 lines
762 B
Go
27 lines
762 B
Go
package handlers
|
|
|
|
import "net/http"
|
|
|
|
// CORSHandler set custom CORS instructions for the store.
|
|
type CORSHandler struct {
|
|
Upstream *http.Handler
|
|
AllowedHost string
|
|
}
|
|
|
|
func (c CORSHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|
// https://raw.githubusercontent.com/openfaas/store/master/store.json
|
|
w.Header().Set("Access-Control-Allow-Headers", "Content-Type")
|
|
w.Header().Set("Access-Control-Allow-Methods", "GET")
|
|
w.Header().Set("Access-Control-Allow-Origin", c.AllowedHost)
|
|
|
|
(*c.Upstream).ServeHTTP(w, r)
|
|
}
|
|
|
|
// DecorateWithCORS decorate a handler with CORS-injecting middleware
|
|
func DecorateWithCORS(upstream http.Handler, allowedHost string) http.Handler {
|
|
return CORSHandler{
|
|
Upstream: &upstream,
|
|
AllowedHost: allowedHost,
|
|
}
|
|
}
|