gpt4 book ai didi

go - 使用/rs/cors 作为 Buffalo 的预制件的示例?

转载 作者:IT王子 更新时间:2023-10-29 02:02:32 25 4
gpt4 key购买 nike

我正在尝试让/rs/cors 包与最新的 Buffalo 作为 Preware 一起工作,根据最近的博客文章(https://blog.gobuffalo.io/buffalo-v0-9-4-released-5d2327a4742e),它应该可以工作,但那里的代码片段似乎没有说得通。如果我生成一个新的 buffalo 应用程序作为 API,并且我考虑添加 cors 包,我从:

app = buffalo.New(buffalo.Options{
Env: ENV,
SessionStore: sessions.Null{},
SessionName: "_creatorhub_session",
})
// Automatically redirect to SSL
app.Use(ssl.ForceSSL(secure.Options{
SSLRedirect: ENV == "production",
SSLProxyHeaders: map[string]string{"X-Forwarded-Proto": "https"},
}))

// Set the request content type to JSON
app.Use(middleware.SetContentType("application/json"))

我显然应该添加一些类似于“PreWares:[]buffalo.PreWare{}”的内容,但它似乎需要一个 HandlerFunc,在正常使用下/rs/cors 似乎不会返回,所以我我找不到合适的组合来使它们一起正常工作,而且我还没有找到一个有效的例子。

有人有例子可以分享吗?任何想法表示赞赏!

最佳答案

终于弄明白了,所以我会在这里与其他人分享信息。这是使用 Buffalo v0.10.1 和 https://github.com/rs/cors项目。我深入研究并发现我可以设置 cors 对象(例如使用 localhost):

    c := cors.New(cors.Options{
AllowedOrigins: []string{"http://localhost:8080"},
AllowCredentials: true,
})

然后通过从中获取处理程序将其添加到 Buffalo 实例化中:

app = buffalo.New(buffalo.Options{
Env: ENV,
SessionStore: sessions.Null{},
SessionName: "_creatorhub_session",
PreWares: []buffalo.PreWare{c.Handler},
})

这对我有用。问题是很难找到关于 Buffalo 想要传递给 PreWare 的内容并将其与 cors 包可以提供的内容相匹配的文档。

希望这对以后的其他人有所帮助!

关于go - 使用/rs/cors 作为 Buffalo 的预制件的示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47428896/

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