千家信息网

Golang gin跨域问题怎么解决

发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,本文小编为大家详细介绍"Golang gin跨域问题怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"Golang gin跨域问题怎么解决"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一
千家信息网最后更新 2025年11月13日Golang gin跨域问题怎么解决

本文小编为大家详细介绍"Golang gin跨域问题怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"Golang gin跨域问题怎么解决"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

gin跨域解决方案

cors1.go

package middlewaresimport (        "github.com/gin-gonic/gin"        "net/http")func Cors() gin.HandlerFunc {        return func(c *gin.Context) {                method := c.Request.Method                origin := c.Request.Header.Get("Origin")                if origin != ""{                        c.Header("Access-Control-Allow-Origin", origin)                        //主要设置Access-Control-Allow-Origin                        c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, UPDATE")                        c.Header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization")                        c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Cache-Control, Content-Language, Content-Type")                        c.Header("Access-Control-Allow-Credentials", "false")                        c.Set("content-type", "application/json")                }                if method == "OPTIONS"{                        c.AbortWithStatus(http.StatusNoContent)                }                c.Next()        }}

cors2.go

func Cors() gin.HandlerFunc {        return cors.New(cors.Config{                AllowAllOrigins: false,                AllowOrigins:    nil,                AllowOriginFunc: func(origin string) bool {                        return true                },                AllowMethods:     []string{"GET", "POST", "PUT", "PATCH", "DELETE", "HEAD"},                AllowHeaders:     []string{"Authorization", "ts", "Accept", "Origin", "DNT", "X-CustomHeader", "Keep-Alive", "User-Agent", "X-Requested-With", "If-Modified-Since", "Cache-Control", "Content-Type", "Content-Range", "Range"},                AllowCredentials: true,                MaxAge:           10 * time.Minute,        })}

使用中间件

package routerimport (    "github.com/gin-gonic/gin"    "goproejct/controllers"    "goproejct/middlewares"//引入中间件goproject是项目名 根据自己情况)func InitRouter() {    router := gin.Default()    router.Use(Cors())//使用中间件    v1 := router.Group("v1")    {        v1.POST("/login", controllers.Login)        v1.POST("/regist", controllers.Regist)    }    router.Run(":8000")}

读到这里,这篇"Golang gin跨域问题怎么解决"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

0