Gin跨域中间件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gin跨域中间件相关的知识,希望对你有一定的参考价值。

参考技术A 浏览器有跨域限制,需要在header里添加Access-Control-Allow-Origin

添加中间件

有一个补充,前端如果需要添加自定义请求头字段时,比如token

这时浏览器会预先发一个OPTIONS类型的请求,如果添加的自定义字段没有包含在“Access-Control-Allow-Headers”里面的话,前端只会收到一个没有body的response

所以此时Cors中间件中不仅要处理OPTIONS类型的请求,也要在Access-Control-Allow-Headers添加这个自定义字段

Go-gin CORS 跨域中间件

原文:https://stackoverflow.com/questions/29418478/go-gin-framework-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()
    }
}

 

以上是关于Gin跨域中间件的主要内容,如果未能解决你的问题,请参考以下文章

GIn_中间件

golang gin 中常用中间件

Gin框架系列之中间件

Gin简单明了的教程---下

Golang Gin 框架之中间件

从0开始的go+websocket构建五子棋对战系统