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

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

Susan Sarandon
Freigeben: 2024-12-19 01:02:12
Original
485 Leute haben es durchsucht

How to Efficiently Handle CORS Preflight Requests in Go?

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
  }
}
Nach dem Login kopieren

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")
Nach dem Login kopieren

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)
    }
  }
}
Nach dem Login kopieren

Verwendung:

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

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!

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