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

如何从 Go gin 上下文中获取请求主机?

如何从 Go gin 上下文中获取请求主机?

Go
阿波罗的战车 2022-11-08 16:12:04
我正在尝试从 gin 上下文中获取请求主机,但我发现的唯一接近的是Context.ClientIP(). 我正在处理一个动态 IP,所以我想在这里获取主机名,而不是根据允许的列表检查它以设置 CORS 标头。如何获取客户端主机名?
查看完整描述

1 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

由于您想将其用于 CORS,因此您可以从原始标头中获取它。它本质上是请求来自的网站的主机。它不是真正的客户端主机。但是对于 CORS,您想使用 origin。因此,您设置了 header Access-Control-Allow-Origin。


origin := c.Request.Header.Get("Origin")

一个允许 CORS 的简单处理程序可能如下所示。


allowList := map[string]bool{

    "https://www.google.com": true,

    "https://www.yahoo.com":  true,

}


r.GET("/", func(c *gin.Context) {

    if origin := c.Request.Header.Get("Origin"); allowList[origin] {

        c.Header("Access-Control-Allow-Origin", origin)

    }

    c.JSON(200, gin.H{"message": "ok"})

})


查看完整回答
反对 回复 2022-11-08
  • 1 回答
  • 0 关注
  • 253 浏览
慕课专栏
更多

添加回答

举报

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