1 回答

TA貢獻1839條經(jīng)驗 獲得超15個贊
我最終通過編寫一個自定義的 Echo 中間件來解決這個問題,以便在 Echo 的代理中間件將標頭發(fā)送回客戶端之前掛鉤到響應(yīng)。
func setResponseACAOHeaderFromRequest (req http.Request, resp echo.Response) {
resp.Header().Set(echo.HeaderAccessControlAllowOrigin,
req.Header.Get(echo.HeaderOrigin))
}
func ACAOHeaderOverwriteMiddleware(next echo.HandlerFunc) echo.HandlerFunc {
return func(ctx echo.Context) error {
ctx.Response().Before(func() {
setResponseACAOHeaderFromRequest(*ctx.Request(), *ctx.Response())
})
return next(ctx)
}
}
然后將此中間件放在e.Use() 代理中間件之前:
e.POST(
"/",
handlers.Noop,
ACAOHeaderOverwriteMiddleware,
middleware.ProxyWithConfig(middleware.ProxyConfig{
Balancer: singleTargetBalancer("[backend service URL]"),
})
)
Request::Before()Echo鉤子的文檔: https ://echo.labstack.com/guide/response#before-response
- 1 回答
- 0 關(guān)注
- 160 瀏覽
添加回答
舉報