Gin CORS 插件使用教程
corsOfficial CORS gin's middleware项目地址:https://gitcode.com/gh_mirrors/cors/cors
目录结构及介绍
Gin CORS 插件的目录结构相对简单,主要包含以下几个部分:
gin-contrib/cors/
├── LICENSE
├── README.md
├── cors.go
└── example/
└── main.go
- LICENSE: 项目的开源许可证文件。
- README.md: 项目的说明文档,包含基本介绍和使用方法。
- cors.go: 核心代码文件,实现了 CORS 功能。
- example/: 示例目录,包含一个简单的示例程序
main.go
。
项目的启动文件介绍
在 example/
目录下,有一个示例启动文件 main.go
,其主要内容如下:
package main
import (
"time"
"github.com/gin-gonic/gin"
"github.com/gin-contrib/cors"
)
func main() {
router := gin.Default()
// CORS 配置
router.Use(cors.New(cors.Config{
AllowAllOrigins: true,
AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "PATCH"},
AllowHeaders: []string{"Origin", "Content-Length", "Content-Type"},
ExposeHeaders: []string{"Content-Length"},
AllowCredentials: true,
MaxAge: 12 * time.Hour,
}))
router.GET("/", func(c *gin.Context) {
c.String(200, "Hello, World!")
})
router.Run(":8080")
}
- 导入依赖: 导入了
gin
和gin-contrib/cors
包。 - 创建路由: 使用
gin.Default()
创建一个默认的路由引擎。 - 配置 CORS: 使用
cors.New
函数配置 CORS 规则。 - 定义路由处理函数: 定义了一个简单的处理函数,返回 "Hello, World!"。
- 启动服务: 使用
router.Run(":8080")
启动 HTTP 服务。
项目的配置文件介绍
Gin CORS 插件的配置主要通过 cors.Config
结构体进行设置,以下是一些常用的配置项:
type Config struct {
AllowAllOrigins bool
AllowOrigins []string
AllowMethods []string
AllowHeaders []string
ExposeHeaders []string
AllowCredentials bool
MaxAge time.Duration
// 其他配置项...
}
- AllowAllOrigins: 是否允许所有来源的请求,设置为
true
时,忽略AllowOrigins
配置。 - AllowOrigins: 允许的来源列表,例如
[]string{"http://example.com"}
。 - AllowMethods: 允许的 HTTP 方法列表,例如
[]string{"GET", "POST"}
。 - AllowHeaders: 允许的请求头列表,例如
[]string{"Origin", "Content-Type"}
。 - ExposeHeaders: 允许客户端访问的响应头列表,例如
[]string{"Content-Length"}
。 - AllowCredentials: 是否允许发送凭证(如 cookies)。
- MaxAge: 预检请求的有效期,单位为时间。
通过这些配置项,可以灵活地控制 CORS 规则,以适应不同的应用场景。
corsOfficial CORS gin's middleware项目地址:https://gitcode.com/gh_mirrors/cors/cors
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考