1. CORS 中间件的使用:
GoFrame 提供了中间件机制,可以轻松地处理 CORS。你可以使用 ghttp.Middleware 函数来注册中间件。以下是一个简单的示例:
package main
import (
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/net/ghttp"
)
func main() {
s := g.Server()
s.Use(CORSMiddleware)
// ...其他路由注册等操作
s.Run()
}
// CORSMiddleware 处理跨域请求的中间件
func CORSMiddleware(r *ghttp.Request) {
r.Response.CORSDefault()
r.Middleware.Next()
}
上述代码中,CORSMiddleware 函数通过 r.Response.CORSDefault() 设置了一些默认的 CORS 头信息,包括允许的方法、头部和请求源。然后通过 r.Middleware.Next() 执行下一个中间件或处理器。
2. 自定义 CORS 配置:
如果你需要更精细地控制 CORS 头信息,可以使用 CORS 配置对象。以下是一个示例:
package main
import (
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/net/ghttp"
)
func main() {
s := g.Server()
s.Use(CORSMiddleware)
// ...其他路由注册等操作
s.Run()
}
// CORSMiddleware 处理跨域请求的中间件
func CORSMiddleware(r *ghttp.Request) {
cors := ghttp.CORS{
AllowOrigin: "http://localhost:3000",
AllowMethods: "GET, POST, PUT, DELETE, OPTIONS",
AllowHeaders: "Origin, Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization",
ExposeHeaders: "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Content-Type",
AllowCredentials: "true",
MaxAge: 3600,
}
cors.Middleware()(r)
}
在这个例子中,通过创建 CORS 对象并设置相应的属性,可以更细粒度地控制 CORS 头信息。
这只是 GoFrame 处理 CORS 的基础示例,实际情况可能因应用程序的需求而有所不同。在实际项目中,你可能需要根据具体场景进一步调整和扩展 CORS 配置。
转载请注明出处:http://www.zyzy.cn/article/detail/7863/GoFrame