首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Buffalo中使用/rs/cors作为前置软件的示例?

在Buffalo中使用/rs/cors作为前置软件的示例?
EN

Stack Overflow用户
提问于 2017-11-22 15:18:59
回答 1查看 396关注 0票数 1

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

代码语言:javascript
复制
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似乎不会返回,所以我找不到正确的组合来使它们正确地结合在一起,我也没有找到一个有效的示例。

有没有人有可以分享的例子?任何想法都很感谢!

EN

回答 1

Stack Overflow用户

发布于 2017-11-23 10:02:06

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

代码语言:javascript
复制
    c := cors.New(cors.Options{
        AllowedOrigins:   []string{"http://localhost:8080"},
        AllowCredentials: true,
    })

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

代码语言:javascript
复制
app = buffalo.New(buffalo.Options{
    Env:          ENV,
    SessionStore: sessions.Null{},
    SessionName:  "_creatorhub_session",
    PreWares:     []buffalo.PreWare{c.Handler},
})

这对我很管用。问题在于,很难找到传递给PreWare的Buffalo所需内容的文档,并将其与cors包可以提供的内容进行匹配。

希望这对将来的其他人有所帮助!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47428896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档