Heim > Backend-Entwicklung > Golang > Wie kann man Preflight-CORS-Anfragen in Go effizient bearbeiten?

Wie kann man Preflight-CORS-Anfragen in Go effizient bearbeiten?

Barbara Streisand
Freigeben: 2024-12-25 01:48:17
Original
212 Leute haben es durchsucht

How to Efficiently Handle Preflight CORS Requests in Go?

Verarbeitung von Preflight-CORS-Anfragen in Go

Bei der Entwicklung von standortübergreifenden HTTP-Anfragen können Sie auf Preflight-OPTIONS-Anfragen stoßen, um die Sicherheit der Anfrage zu überprüfen. Die angemessene Bearbeitung dieser Anfragen ist in einem Go-Kontext von entscheidender Bedeutung.

Ein grundlegender Ansatz besteht darin, die Anforderungsmethode in der Handler-Funktion zu überprüfen:

func AddResourceHandler(rw http.ResponseWriter, r *http.Request) {
  switch r.Method {
  case "OPTIONS":
    // handle preflight
  case "PUT":
    // respond to actual request
  }
}
Nach dem Login kopieren

Eine andere Option ist die Verwendung des Mux-Pakets von Gorilla, die Registrierung eines Preflight-Handler „OPTIONS“ für relevante URL-Pfade:

r := mux.NewRouter()
r.HandleFunc("/someresource/item", AddResourceHandler).Methods("PUT")
r.HandleFunc("/someresource/item", PreflightAddResourceHandler).Methods("OPTIONS")
Nach dem Login kopieren

Für einen eleganteren Ansatz sollten Sie jedoch in Betracht ziehen, Ihren REST zu verpacken Handler:

func corsHandler(h http.Handler) http.HandlerFunc {
  return func(w http.ResponseWriter, r *http.Request) {
    if (r.Method == "OPTIONS") {
      //handle preflight in here
    } else {
      h.ServeHTTP(w,r)
    }
  }
}
Nach dem Login kopieren

Sie können den Handler dann wie folgt umschließen:

http.Handle("/endpoint/", corsHandler(restHandler))
Nach dem Login kopieren

Indem Sie Ihre Logik heraustrennen und den CORS-Handler wiederverwenden, optimieren Sie Ihren Code und verbessern seine Wartbarkeit .

Das obige ist der detaillierte Inhalt vonWie kann man Preflight-CORS-Anfragen in Go effizient bearbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage