gin解决跨域,gin接受json数据
·
解决跨域
// 使用gin解决跨域问题
func CORSMiddleware() gin.HandlerFunc {
return func(ctx *gin.Context) {
ctx.Writer.Header().Set("Access-Control-Allow-Origin", "http://localhost:8080") //允许访问的域名 *表示所有的都可以访问
ctx.Writer.Header().Set("Access-Control-Max-Age", "86400") //缓存时间
ctx.Writer.Header().Set("Access-Control-Allow-Methods", "*") //可以通过访问的方法 get post ... *表示允许所有方法
ctx.Writer.Header().Set("Access-Control-Allow-Headers", "*") //允许请求带的header头信息
ctx.Writer.Header().Set("Access-Control-Allow-Credentials", "true")
if ctx.Request.Method == http.MethodOptions {
ctx.AbortWithStatus(200)
} else {
ctx.Next()
}
}
}
在route中使用
func CollectRoute(r *gin.Engine) *gin.Engine {
r.Use(middleware.CORSMiddleware())
r.POST("/api/auth/register", controller.Register) //注册
r.POST("/api/auth/login", controller.Login) //登录
r.GET("/api/auth/info", middleware.AuthMiddleware(), controller.Info) //用中间件保护我们用户信息结构 用户信息
return r
}
接受json数据的三种方法
//使用map获取请求参数
var requestMap = make(map[string]string)
json.NewDecoder(ctx.Request.Body).Decode(&requestMap)
//使用结构体承接body参数
var requestUser = model.User{}
json.NewDecoder(ctx.Request.Body).Decode(&requestUser)
//gin框架提供的绑定参数
var requestUser = model.User{}
ctx.Bind(&requestUser)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)