1 Star 0 Fork 0

董军/webook

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
main.go 1.34 KB
一键复制 编辑 原始数据 按行查看 历史
DongJun 提交于 2024-09-03 14:10 . 解决跨域问题
package main
import (
"fmt"
"github.com/gin-contrib/cors"
"github.com/gin-gonic/gin"
"strings"
"time"
"webook/internal/web"
)
func main() {
server := gin.Default()
server.Use(cors.New(cors.Config{ //全局中间件,每个请求都会先经过这里,默认允许的请求方法为GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS
AllowHeaders: []string{"authorization", "content-type"}, //指定哪些请求头可以在跨域请求中使用
AllowCredentials: true, //是否允许跨源请求带有凭证(如cookies)
AllowOriginFunc: func(origin string) bool { //动态决定是否允许特定的源访问资源,origin是发起请求的URL
if strings.HasPrefix(origin, "http://localhost") { //开发环境,检查请求的源是否以http://localhost开头
return true //允许该请求源
}
return strings.Contains(origin, "yourDomain.com") //生产环境,检查请求源是否包含生产环境下的域名
},
MaxAge: 12 * time.Hour, //preflight请求的缓存时间,使得浏览器在12小时内不需要重新发送preflight请求,而是可以使用缓存的结果来决定是否允许实际请求
}))
user := web.NewUserHandler() //使用工厂函数创建实例
user.RegisterRoutes(server)
err := server.Run(":8080")
if err != nil {
fmt.Println("Gin启动失败:", err)
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/dong-jun123123/webook.git
git@gitee.com:dong-jun123123/webook.git
dong-jun123123
webook
webook
master

搜索帮助