func corsMiddleware()

in src/httpserver.go [28:58]


func corsMiddleware(next http.Handler) http.Handler {
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {

		// Set CORS headers
		allowOrigin := os.Getenv("CORS_ALLOW_ORIGIN")
		if allowOrigin == "" {
			allowOrigin = "*"
		}
		w.Header().Set("Access-Control-Allow-Origin", allowOrigin)

		allowMethods := os.Getenv("CORS_ALLOW_METHODS")
		if allowMethods == "" {
			allowMethods = "GET, POST, OPTIONS"
		}
		w.Header().Set("Access-Control-Allow-Methods", allowMethods)

		allowHeaders := os.Getenv("CORS_ALLOW_HEADERS")
		if allowHeaders == "" {
			allowHeaders = "*"
		}
		w.Header().Set("Access-Control-Allow-Headers", allowHeaders)

		// Handle preflight request
		if r.Method == http.MethodOptions {
			w.WriteHeader(http.StatusNoContent)
			return
		}

		next.ServeHTTP(w, r)
	})
}