Golang的Gin框架解决跨域问题

2019-04-25  本文已影响0人  柠檬信息技术有限公司

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

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对象的地方调用下面的方法即可

engine.Use(cors())
上一篇 下一篇

猜你喜欢

热点阅读