Go gin 框架 CORS

我正在使用 Go gin 框架gin


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()

        }

    }

}

我有状态代码:200 OK,但在 OPTIONS 请求后没有任何反应。看起来我错过了什么,但我不明白我错在哪里。


有谁能够帮助我?


慕桂英4014372
浏览 240回答 3
3回答

函数式编程

FWIW,这是我的 CORS 中间件,可以满足我的需求。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()    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go