gpt4 book ai didi

http - 即使 OPTIONS 返回 HTTP 200,CORS 也不起作用

转载 作者:IT王子 更新时间:2023-10-29 01:57:56 28 4
gpt4 key购买 nike

我正在使用 chi 并按如下方式设置 cors

func main() {
r := chi.NewRouter()
r.Use(render.SetContentType(render.ContentTypeJSON))
r.Use(Cors)

r.Post("/auth/login", Login)
r.Route("/ec2", func(r chi.Router) {
r.Use(Cors)
r.Get("/", ListEc2)
})

http.ListenAndServe(":9000", r)
}

我的Cors中间件

func Cors(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Allow-Control-Allow-Origin", "*")
w.Header().Set("Allow-Control-Allow-Methods", "*")
w.Header().Set("Allow-Control-Allow-Headers", "*")
w.Header().Set("Allow-Control-Allow-Credentials", "true")
log.Printf("Should set headers")

if r.Method == "OPTIONS" {
log.Printf("Should return for OPTIONS")
return
}
next.ServeHTTP(w, r)
})
}

在网络选项卡中它看起来像:

enter image description here

最佳答案

您只是打错了 header 名称:

w.Header().Set("Allow-Control-Allow-Origin", "*")
^^^^^

您需要 Access-Control 而不是 Allow-Control:

w.Header().Set("Access-Control-Allow-Origin", "*")

…当然对于您在那里设置的其他三个 header 也是如此。

关于http - 即使 OPTIONS 返回 HTTP 200,CORS 也不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44430621/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com