gin框架开启web跨域

shuiche · · 3613 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

![](https://images.cnblogs.com/cnblogs_com/xuange306/1699852/o_200414134249img1.jpg) ## 前言 gin开启跨域,只需要添加一个全局中间件到路由器即可 ## gin 中间件 gin的中间件可以添加到全局, 也可以添加到单个路由上 **添加到全局** ```golang r := gin.New() r.Use(gin.Logger()) r.Use(gin.Recovery()) ``` > 这里的两个中间件就是 gin.Default()帮我们初始化的两个中间件 **添加到单个路由** ```golang authorized := r.Group("/") { authorized.Use(AuthRequired()) } ``` ## gin开启跨域代码案例 gin开启跨域其实还是很简单的, 演示代码如下: ```golang package main import ( "github.com/gin-gonic/gin" ) func main() { r := gin.Default() r.Use(Cors()) // 主要是这里 r.GET("/test", function(){ c.String(200, "success") }) _ = r.Run(":8080") } // 开启跨域中间件函数 func Cors(c *gin.Context) { c.Writer.Header().Set("Access-Control-Allow-Origin", "*") c.Writer.Header().Set("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Cache-Control, Content-Language, Content-Type") // 允许的请求头, 如果有自定义的Header都要添加到这里,不然浏览器会报跨域错误 c.Writer.Header().Set("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization, Token, Timestamp. AppId") // 允许的请求方式都需要添加 c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, OPTIONS, GET, PUT, DELETE") if c.Request.Method == "OPTIONS" { c.AbortWithStatus(204) return } defer func() { if err := recover(); err != nil { public.LOGGER.Error("Panic info is: %v", err) public.LOGGER.Error("Panic info is: %s", debug.Stack()) } }() c.Next() } ```

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3613 次点击  
加入收藏 微博
4 回复  |  直到 2021-03-26 15:56:49
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传