Verarbeitung von CORS-Preflight-Anfragen mit Go
In einem in Go geschriebenen RESTful-Backend-Server erfordert die Bearbeitung ursprungsübergreifender HTTP-Anfragen die Bearbeitung von Preflight-CORS-Anfragen . So gehen Sie effektiv damit um:
1. Manuelle Methodenprüfung:
In net/http kann die Anforderungsmethode in der Handlerfunktion überprüft werden. Zum Beispiel:
func AddResourceHandler(rw http.ResponseWriter, r *http.Request) { switch r.Method { case "OPTIONS": // Preflight handling logic case "PUT": // Actual request response } }
2. Gorilla Mux-Paket:
Gorilla Mux ermöglicht die Registrierung eines separaten Preflight-Handlers für jeden URL-Pfad. Zum Beispiel:
r := mux.NewRouter() r.HandleFunc("/someresource/item", AddResourceHandler).Methods("PUT") r.HandleFunc("/someresource/item", PreflightAddResourceHandler).Methods("OPTIONS")
3. HTTP-Handler-Wrapper:
Um die Logik zu entkoppeln und den CORS-Handler wiederzuverwenden, sollten Sie den REST-Handler einpacken. Zum Beispiel in net/http:
func corsHandler(h http.Handler) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { if r.Method == "OPTIONS" { // Preflight handling } else { h.ServeHTTP(w, r) } } }
Verwendung:
http.Handle("/endpoint/", corsHandler(restHandler))
Diese Ansätze bieten elegante Lösungen für die Bearbeitung von CORS-Preflight-Anfragen in Go. Wählen Sie diejenige aus, die am besten zu Ihrer Anwendungsarchitektur passt.
Das obige ist der detaillierte Inhalt vonWie kann man CORS-Preflight-Anfragen in Go effizient bearbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!