如何在fasthttp中添加自定义HTTP标头?

时间:2018-06-22 08:16:37

标签: http go

我正在使用Fasthttp服务器https://github.com/valyala/fasthttp

我需要为所有请求添加自定义标头

Access-Control-Allow-Origin: *

我该怎么做?

3 个答案:

答案 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)))
}