Go语言Echo框架中CORSWithConfig中间件的配置参数及用法
Go Echo框架中CORSWithConfig的参数与配置方法
可配置的核心参数及说明
AllowOrigins: 允许发起跨域请求的源地址,值为字符串数组。例如[]string{"https://example.com", "http://localhost:3000"},也可设为[]string{"*"}允许所有源(生产环境不建议使用)。AllowMethods: 允许的HTTP请求方法,默认包含GET、POST、PUT、PATCH、DELETE、HEAD、OPTIONS,可自定义子集,比如[]string{echo.GET, echo.POST}。AllowHeaders: 允许的请求头字段,默认包含Origin、Content-Type、Accept,可添加自定义头,例如[]string{"X-Custom-Header", "X-Request-ID"}。AllowCredentials: 是否允许请求携带凭证(如Cookie、HTTP认证信息),布尔值,可选true或false,默认false。ExposeHeaders: 允许前端JavaScript访问的响应头字段,默认是空数组,比如[]string{"X-Total-Count", "X-Pagination-Page"}。MaxAge: 预检请求(OPTIONS)的缓存时长,单位为秒,例如86400(24小时),默认0表示不缓存预检结果。AllowWildcard: 是否允许源地址使用通配符(如https://*.example.com),布尔值,可选true或false,默认false。AllowWebSockets: 是否允许WebSocket跨域连接,布尔值,可选true或false,默认false。
配置示例
生产环境常用配置
package main import ( "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" ) func main() { e := echo.New() // 自定义CORS配置 corsCfg := middleware.CORSConfig{ AllowOrigins: []string{"https://your-frontend-app.com", "https://admin.your-domain.com"}, AllowMethods: []string{echo.GET, echo.POST, echo.PUT, echo.DELETE}, AllowHeaders: []string{echo.HeaderOrigin, echo.HeaderContentType, echo.HeaderAccept, "X-Auth-Token"}, AllowCredentials: true, MaxAge: 86400, // 缓存预检请求24小时 } // 应用CORS中间件 e.Use(middleware.CORSWithConfig(corsCfg)) // 示例路由 e.GET("/api/users", func(c echo.Context) error { return c.JSON(200, map[string]interface{}{ "users": []string{"alice", "bob"}, }) }) e.Start(":8080") }
开发环境快速配置(允许所有源)
func main() { e := echo.New() corsCfg := middleware.CORSConfig{ AllowOrigins: []string{"*"}, AllowMethods: middleware.DefaultCORSConfig.AllowMethods, AllowHeaders: middleware.DefaultCORSConfig.AllowHeaders, AllowCredentials: false, } e.Use(middleware.CORSWithConfig(corsCfg)) // 路由... e.Start(":8080") }
支持通配符源的配置
corsCfg := middleware.CORSConfig{ AllowOrigins: []string{"https://*.your-domain.com", "http://localhost:*"}, AllowWildcard: true, AllowCredentials: true, }
内容的提问来源于stack exchange,提问作者Sarthak
相关产品推荐
相关产品推荐

