zhangjidong před 3 dny
rodič
revize
5954b2f5d6
2 změnil soubory, kde provedl 23 přidání a 0 odebrání
  1. binární
      aice.exe~
  2. 23 0
      main.go

binární
aice.exe~


+ 23 - 0
main.go

@@ -11,6 +11,7 @@ import (
 
 	"github.com/beego/beego/v2/client/orm"
 	beego "github.com/beego/beego/v2/server/web"
+	bcontext "github.com/beego/beego/v2/server/web/context"
 	_ "github.com/go-sql-driver/mysql"
 )
 
@@ -101,6 +102,28 @@ func init() {
 	if err := utils.InitWxPay(); err != nil {
 		log.Fatalf("init wxpay failed: %v", err)
 	}
+
+	// 注册全局CORS过滤器
+	beego.InsertFilter("*", beego.BeforeRouter, CORSFilter)
+}
+
+// CORSFilter 用于处理跨域请求
+func CORSFilter(ctx *bcontext.Context) {
+	// 设置CORS响应头
+	ctx.Output.Header("Access-Control-Allow-Origin", "*")
+	ctx.Output.Header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, PATCH, HEAD")
+	ctx.Output.Header("Access-Control-Allow-Headers", "*")
+	ctx.Output.Header("Access-Control-Max-Age", "86400")
+	ctx.Output.Header("Access-Control-Allow-Credentials", "true")
+	ctx.Output.Header("Access-Control-Expose-Headers", "*")
+
+	// 移除引荐来源网址政策限制
+	ctx.Output.Header("Referrer-Policy", "no-referrer")
+
+	// 处理预检请求
+	if ctx.Input.Method() == "OPTIONS" {
+		ctx.Output.SetStatus(200)
+	}
 }
 
 func main() {