package middleware

import "github.com/astaxie/beego/context"

func CorsMiddleware(ctx *context.Context) {
	// 设置允许跨域的域名
	ctx.ResponseWriter.Header().Set("Access-Control-Allow-Origin", "*")
	// 允许的方法
	ctx.ResponseWriter.Header().Set("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS")
	// 允许的请求标头
	ctx.ResponseWriter.Header().Set("Access-Control-Allow-Headers", "Origin, Authorization, Content-Type")
	// 允许跨域 cookie 传递
	ctx.ResponseWriter.Header().Set("Access-Control-Allow-Credentials", "true")
	// 预检请求的处理
	if ctx.Input.Method() == "OPTIONS" {
		ctx.ResponseWriter.Header().Set("Access-Control-Max-Age", "86400") // 预检请求结果的缓存时间,单位秒
		ctx.ResponseWriter.WriteHeader(200)
	}
}