zoukankan      html  css  js  c++  java
  • gin框架开启web跨域


    前言
    gin开启跨域,只需要添加一个全局中间件到路由器即可

    gin 中间件

    gin的中间件可以添加到全局, 也可以添加到单个路由上

    添加到全局

    r := gin.New()
    r.Use(gin.Logger())
    r.Use(gin.Recovery())
    

    这里的两个中间件就是 gin.Default()帮我们初始化的两个中间件

    添加到单个路由

    authorized := r.Group("/")
    authorized.Use(AuthRequired())
    

    gin开启跨域

    gin开启跨域其实还是很简单的, 演示代码如下:

    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() gin.HandlerFunc {
    	return func(c *gin.Context) {
    		c.Writer.Header().Set("Access-Control-Allow-Origin", "*")
    		c.Writer.Header().Set("Access-Control-Expose-Headers", "Access-Control-Allow-Origin")
    		c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, OPTIONS, GET, PUT")
    
    		if c.Request.Method == "OPTIONS" {
    			c.AbortWithStatus(204)
    			return
    		}
    
    		defer func() {
    			if err := recover(); err != nil {
    				core.Logger.Error("Panic info is: %v", err)
    				core.Logger.Error("Panic info is: %s", debug.Stack())
    			}
    		}()
    
    		c.Next()
    	}
    }
    
  • 相关阅读:
    转-jsonp和jsonpcallback的使用
    转-jQuery jsonp跨域请求
    转-彻底弄懂JS的事件冒泡和事件捕获
    转-打造自己的js类库
    (转)JavaScript: 零基础轻松学闭包(1)
    Myslq 之主键
    Myslq 之空值与非空
    Myslq 之记录查找
    Myslq 之插入记录
    Myslq 之查看数据表
  • 原文地址:https://www.cnblogs.com/xuange306/p/gin_cors.html
Copyright © 2011-2022 走看看