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()
	}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM