Heim > Backend-Entwicklung > Golang > Wie konfiguriere ich die CORS-Middleware in Go Gin richtig, um OPTIONS-Anfragen zu verarbeiten?

Wie konfiguriere ich die CORS-Middleware in Go Gin richtig, um OPTIONS-Anfragen zu verarbeiten?

Susan Sarandon
Freigeben: 2024-12-21 03:10:09
Original
385 Leute haben es durchsucht

How to Properly Configure CORS Middleware in Go Gin to Handle OPTIONS Requests?

CORS im Go Gin Framework aktivieren

Das Go Gin Framework bietet eine leistungsstarke Middleware zum Aktivieren von CORS (Cross-Origin Resource Sharing) in Ihrem Anwendungen. Durch das Hinzufügen dieser Middleware zu Ihrer App können Sie Anfragen unterschiedlicher Herkunft den Zugriff auf Ihre API-Endpunkte ermöglichen.

Berücksichtigen Sie die folgende CORS-Middleware-Implementierung:

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

Die Verwendung dieser Middleware führt jedoch zu Ergebnissen Wenn der Statuscode 200 OK lautet, aber nach OPTION-Anfragen keine weiteren Maßnahmen ergriffen werden, haben Sie möglicherweise etwas Entscheidendes übersehen Schritt:

Fix:

func CORSMiddleware() gin.HandlerFunc {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">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

}

In der aktualisierten Middleware c.AbortWithStatus(204) gibt den Antwortstatus 204 No Content ohne Text zurück, was auf eine erfolgreiche OPTIONS-Anfrage hinweist und es dem Client ermöglicht, mit der eigentlichen Anfrage fortzufahren.

Das obige ist der detaillierte Inhalt vonWie konfiguriere ich die CORS-Middleware in Go Gin richtig, um OPTIONS-Anfragen zu verarbeiten?. 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 Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage