我正在使用Fasthttp服务器https://github.com/valyala/fasthttp
我需要为所有请求添加自定义标头
Access-Control-Allow-Origin: *
我该怎么做?
答案 0 :(得分:2)
因为它是一个响应头,所以我认为你的意思是:
ctx.Response.Header.Set("Access-Control-Allow-Origin", "*")
答案 1 :(得分:0)
如果不使用Context
,则为另一种选择:
func setResponseHeader(h http.HandlerFunc) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")
h.ServeHTTP(w, r)
}
}
setResponseHeader
本质上是参数HandlerFunc
h
的修饰符。组装路线时,您可以执行以下操作:
http.HandleFunc("/api/endpoint", setResponseHeader(myHandlerFunc))
http.ListenAndServe(":8000", nil)
答案 2 :(得分:0)
要在fasthttp上启用CORS支持,最好使用fasthttpcors软件包。
import (
...
cors "github.com/AdhityaRamadhanus/fasthttpcors"
...
)
func main() {
...
withCors := cors.NewCorsHandler(cors.Options{
AllowMaxAge: math.MaxInt32,
})
log.Fatal(fasthttp.ListenAndServe(":8080", withCors.CorsMiddleware(router.HandleRequest)))
}