go-gin 解决跨域问题[解决一个问题,往往需要打开一堆网页,然后尝试一堆错误方法,最后才能解决,总结起来就是说:“菜就多练“]
在Go语言的Gin框架中解决跨域问题,可以通过Gin提供的中间件来实现。以下是一个简单的示例代码:
package main
import (
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
// 添加跨域中间件
r.Use(Cors())
// 你的路由和处理函数
r.GET("/", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "Success",
})
})
r.Run()
}
// Cors 跨域中间件
func Cors() gin.HandlerFunc {
return func(c *gin.Context) {
method := c.Request.Method
origin := c.Request.Header.Get("Origin")
if origin != "" {
c.Header("Access-Control-Allow-Origin", "*")
c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, UPDATE")
c.Header("Access-Control-Allow-Headers", "Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, X-User-Agent, X-User-Id, X-Device-Id")
c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Cache-Control, Content-Language, Content-Type")
c.Header("Access-Control-Allow-Credentials", "true")
}
if method == "OPTIONS" {
c.AbortWithStatus(204)
return
}
c.Next()
}
}
在这个示例中,Cors()
函数是一个跨域中间件,它会设置适当的CORS头部来允许跨域请求。在实际的应用中,你可能需要根据具体需求调整允许的方法和头部信息。将这个中间件添加到Gin的路由处理链中,就可以解决跨域问题。
评论已关闭