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)