登录
首页 >  Golang >  Go问答

有没有办法让 CORS 适用于 Gin Go 中的单个路线

来源:stackoverflow

时间:2024-03-16 21:27:23 418浏览 收藏

在 Gin Go 框架中,可以通过中间件的方式实现对单个路由的 CORS 设置。具体而言,gin-contrib/cors 软件包提供了灵活的配置选项,允许开发者为特定的路由设置允许的来源域名或使用自定义函数进行更精细的控制。这使得开发者可以针对不同的路由灵活配置 CORS 策略,满足特定业务场景的需求。

问题内容

我正在尝试使单个杜松子酒服务器端点可由某个来源访问。我尝试过一些软件包,例如 https://github.com/gin-contrib/cors,但据我了解,它将 CORS 设置为您的整个服务器。

例如,我有多个路由,但我只想允许“google.com”访问“/scrape”

  • /data“所有来源”
  • /ping“所有来源”
  • /抓取“google.com”

正确答案


当然可以。它(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

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《有没有办法让 CORS 适用于 Gin Go 中的单个路线》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>