首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从Go gin上下文中获取请求主机?

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

Stack Overflow用户
提问于 2022-02-16 17:30:28
回答 1查看 2K关注 0票数 2

我正在尝试从gin上下文中获取请求主机,但是我找到的唯一接近的东西是Context.ClientIP()。我正在处理一个动态IP,所以我想在这里获得主机名,而不是根据允许的列表来检查主机名,以便设置CORS头。如何获得客户端主机名?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-16 17:46:11

因为您想要将它用于CORS,所以可以从原始标头获取它。从本质上说,它是请求来自的网站的主机。不是客户的主人。但是对于CORS来说,你想要使用原产地。因此,您可以设置头Access-Control-Allow-Origin

代码语言:javascript
运行
复制
origin := c.Request.Header.Get("Origin")

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

代码语言:javascript
运行
复制
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"})
})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71146582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档