为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法让 CORS 为 Gin Go 中的一条路线工作

有没有办法让 CORS 为 Gin Go 中的一条路线工作

Go
达令说 2023-02-06 19:37:43
我正在尝试使某个来源可以访问单个 gin 服务器端点。我已经尝试了一些包,例如https://github.com/gin-contrib/cors但据我所知,它将 CORS 设置为您的整个服务器。例如,我有多个路由,但我只希望“/scrape”被允许被“google.com”访问/数据“所有来源”/ping "所有来源"/抓取“google.com”
查看完整描述

1 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

当然可以。它(https://github.com/gin-contrib/cors)只是一个中间件


package main


import (

  "github.com/gin-contrib/cors"

  "github.com/gin-gonic/gin"

)


func main() {

  router := gin.Default()


  // CORS for example.com and example.net origins

  router.Use(cors.New(cors.Config{

    AllowOrigins:     []string{"example.com"},

    AllowOriginFunc: func(origin string) bool {

      return origin == "example.net"

    }})).GET("/scrape", func(c *gin.Context) {

     // serve something

  })


  allOrigins := router.Group("/")

  allOrigins.Use(cors.Default())

  allOrigins.GET("/data", func(c *gin.Context) {

     // serve something

  })

  allOrigins.GET("/ping", func(c *gin.Context) {

     // serve something

  })


  router.Run()

}

查看更多中间件示例:https ://github.com/gin-gonic/gin#using-middleware


查看完整回答
反对 回复 2023-02-06
  • 1 回答
  • 0 关注
  • 81 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信