gin 跨域访问(vue)

gin跨域访问

前端请求

创建中间件

corsMiddleware.go

package middlewares

import (
    "fmt"
    "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()
    }
}

使用中间件

package router

import (
    "github.com/gin-gonic/gin"
    "goproejct/controllers"
    "goproejct/middlewares"//引入中间件goproject是项目名 根据自己情况
)

func InitRouter() {
    router := gin.Default()
    router.Use(middlewares.Cors())//使用中间件
    v1 := router.Group("v1")
    {
        v1.POST("/login", controllers.Login)
        v1.POST("/regist", controllers.Regist)
    }
    router.Run(":8000")
}

前端请求


请求成功

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容