Ich versuche, einen Header in meinem Go-Webserver festzulegen. Ich benutze gorilla/mux
und net/http
Pakete.
Ich möchte festlegen Access-Control-Allow-Origin: *
, dass domänenübergreifendes AJAX zulässig ist.
Hier ist mein Go-Code:
func saveHandler(w http.ResponseWriter, r *http.Request) {
// do some stuff with the request data
}
func main() {
r := mux.NewRouter()
r.HandleFunc("/save", saveHandler)
http.Handle("/", r)
http.ListenAndServe(":"+port, nil)
}
Das net/http
Paket enthält eine Dokumentation, in der das Senden von HTTP-Anforderungsheadern wie bei einem Client beschrieben wird. Ich bin nicht genau sicher, wie Antwortheader festgelegt werden sollen.
http
go
cors
http-headers
Zen
quelle
quelle
w.Header().Add("Access-Control-Allow-Methods", "PUT") w.Header().Add("Access-Control-Allow-Headers", "Content-Type")
withCredentials:true
(der Wert "*" ist beim Senden von Anmeldeinformationen nicht zulässig, was ein häufiger Anwendungsfall ist). Sie müssen den Ursprung auf den Anforderer setzen (siehe Matt Buccis Antwort unten, wie).