You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 20:35:01