From 030fa4272f91d0cd435caf3ec785f2605487c7f4 Mon Sep 17 00:00:00 2001 From: ale <ale@incal.net> Date: Sat, 17 Oct 2020 18:43:31 +0100 Subject: [PATCH] Try to handle CORS preflight requests --- collector.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/collector.go b/collector.go index d1928fa..8b785d0 100644 --- a/collector.go +++ b/collector.go @@ -33,7 +33,16 @@ func NewCollector(sink Sink, handlers ...Handler) *Collector { } func (c *Collector) ServeHTTP(w http.ResponseWriter, req *http.Request) { - if req.Method != http.MethodPost { + switch req.Method { + case http.MethodPost: + case http.MethodOptions: + w.Header().Set("Access-Control-Allow-Origin", "*") + w.Header().Set("Access-Control-Allow-Methods", "POST") + w.Header().Set("Access-Control-Allow-Headers", "content-type") + w.Header().Set("Access-Control-Max-Age", "86400") + w.WriteHeader(http.StatusNoContent) + return + default: http.Error(w, "Bad method", http.StatusMethodNotAllowed) return } @@ -56,7 +65,7 @@ hloop: case ErrNoMatch: continue case nil: - w.WriteHeader(http.StatusNoContent) + w.WriteHeader(http.StatusOK) break hloop default: log.Printf("error parsing report: %v", err) -- GitLab