• 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()
    	}
    }
    
  • 相关阅读:
    1245. Tree Diameter
    771. Jewels and Stones
    830. Positions of Large Groups
    648. Replace Words
    647. Palindromic Substrings
    435. Non-overlapping Intervals
    646. Maximum Length of Pair Chain
    645. Set Mismatch
    242. Valid Anagram
    438. Find All Anagrams in a String
  • 原文地址:https://www.cnblogs.com/xuange306/p/gin_cors.html
Copyright © 2020-2023  润新知