Heim > Backend-Entwicklung > Golang > Wie konfiguriere ich die CORS-Middleware im Gin-Framework von Go richtig?

Wie konfiguriere ich die CORS-Middleware im Gin-Framework von Go richtig?

Patricia Arquette
Freigeben: 2024-12-23 03:00:54
Original
213 Leute haben es durchsucht

How to Properly Configure CORS Middleware in Go's Gin Framework?

Go Gin Framework: Umgang mit CORS (Cross-Origin Resource Sharing)

Im Gin-Framework von Go ermöglicht die Konfiguration von Cross-Origin Resource Sharing (CORS) Clients unterschiedlicher Herkunft um auf Ihre Ressourcen zuzugreifen. Es können jedoch Probleme auftreten, bei denen CORS-Anfragen nicht das erwartete Verhalten zurückgeben, wie im Fall des Benutzers, der nach dem Senden einer OPTIONS-Anfrage eine leere Antwort erhalten hat.

Um dieses Problem zu beheben, können wir das Verhalten des Benutzers analysieren bereitgestellte Middleware und vergleichen Sie sie mit einer funktionierenden Beispiel:

func CORSMiddleware() gin.HandlerFunc {
    return func(c *gin.Context) {
        c.Writer.Header().Set("Content-Type", "application/json")
        c.Writer.Header().Set("Access-Control-Allow-Origin", "*")
        c.Writer.Header().Set("Access-Control-Max-Age", "86400")
        c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, UPDATE")
        c.Writer.Header().Set("Access-Control-Allow-Headers", "Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, X-Max")
        c.Writer.Header().Set("Access-Control-Allow-Credentials", "true")

        if c.Request.Method == "OPTIONS" {
            c.AbortWithStatus(200)
        } else {
            c.Next()
        }
    }
}
Nach dem Login kopieren
func CORSMiddleware() gin.HandlerFunc {
    return func(c *gin.Context) {
        c.Writer.Header().Set("Access-Control-Allow-Origin", "*")
        c.Writer.Header().Set("Access-Control-Allow-Credentials", "true")
        c.Writer.Header().Set("Access-Control-Allow-Headers", "Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With")
        c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, OPTIONS, GET, PUT")

        if c.Request.Method == "OPTIONS" {
            c.AbortWithStatus(204)
            return
        }

        c.Next()
    }
}
Nach dem Login kopieren

Unterschiede:

  • Abbruchstatuscode: Die funktionierende Middleware bricht mit einem Statuscode von ab 204 (Kein Inhalt) für OPTIONS-Anfragen, während die Middleware des Benutzers mit 200 abbricht (OK).
  • Zulässige Methoden: Die funktionierende Middleware erlaubt nur POST-, OPTIONS-, GET- und PUT-Methoden, während die Middleware des Benutzers DELETE und UPDATE umfasst.

Um das Problem zu lösen, sollte der Benutzer daher seine Middleware aktualisieren, um sie an das Arbeitsbeispiel anzupassen, insbesondere durch Korrektur des Abbruchstatuscodes und Anpassung der zulässigen Werte Methoden.

Das obige ist der detaillierte Inhalt vonWie konfiguriere ich die CORS-Middleware im Gin-Framework von Go richtig?. 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