【发布时间】:2022-02-08 07:10:40
【问题描述】:
在我的 Go API 中,我使用的是 gin,我在 Access-Control-Allow-Origin 标头中设置了一个值。如果我有多个,我的反应 UI 会抛出一个错误,效果为 The Access-Control-Allow-Origin header contains multiple values 'http://value1, http://value2', but only one is allowed...。我需要设置多个值。我该怎么做?
API是反向代理,相关代码如下:
func proxy(c *gin.Context) {
var remote = "myUrl"
proxy := httputil.NewSingleHostReverseProxy(remote)
proxy.Director = func(req *http.Request) {
req.Header.Set("Authorization", "My Auth Values")
req.Host = remote.Host
req.URL.Scheme = remote.Scheme
req.URL.Host = remote.Host
}
proxy.ModifyResponse = addCustomHeader
proxy.ServeHTTP(c.Writer, c.Request)
}
func addCustomHeader(r *http.Response) error {
r.Header["Access-Control-Allow-Origin"] = []string{"value1"}
return nil
}
【问题讨论】:
-
Access-Control-Allow-Origin 可以是单个值或“*”。为什么需要设置多个?
标签: go cors reverse-proxy