diff --git a/collector.go b/collector.go index d1928fa56726a42adcd6703dbec77cf787f188a9..8b785d007ebc3e34989bc06085bc50a52594a8e7 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)