Golang的Gin框架解决跨域问题

2021-04-19 16:06:54 浏览数 (1)

首先创建一个返回gin.HandlerFunc的函数

代码语言:javascript复制
func cors() gin.HandlerFunc {
    return func(c *gin.Context) {
        method := c.Request.Method

        c.Header("Access-Control-Allow-Origin", "*")
        c.Header("Access-Control-Allow-Headers", "Content-Type,AccessToken,X-CSRF-Token, Authorization, Token")
        c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS")
        c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Content-Type")
        c.Header("Access-Control-Allow-Credentials", "true")
        if method == "OPTIONS" {
            c.AbortWithStatus(http.StatusNoContent)
        }
        c.Next()
    }
}

然后在能拿到*gin.Engine对象的地方调用下面的方法即可

代码语言:javascript复制
engine.Use(cors())

0 人点赞