为了账号安全,请及时绑定邮箱和手机立即绑定

Go gin 框架 CORS

Go gin 框架 CORS

Go
慕桂英4014372 2021-09-27 16:40:04
我正在使用 Go gin 框架ginfunc 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 请求后没有任何反应。看起来我错过了什么,但我不明白我错在哪里。有谁能够帮助我?
查看完整描述

3 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

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

    }

}


查看完整回答
反对 回复 2021-09-27
  • 3 回答
  • 0 关注
  • 239 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信