我正在尝试从gin上下文中获取请求主机,但是我找到的唯一接近的东西是Context.ClientIP()
。我正在处理一个动态IP,所以我想在这里获得主机名,而不是根据允许的列表来检查主机名,以便设置CORS头。如何获得客户端主机名?
发布于 2022-02-16 17:46:11
因为您想要将它用于CORS,所以可以从原始标头获取它。从本质上说,它是请求来自的网站的主机。不是客户的主人。但是对于CORS来说,你想要使用原产地。因此,您可以设置头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"})
})
https://stackoverflow.com/questions/71146582
复制相似问题