Golang?gin跨域解決方案示例
更新時(shí)間:2022年04月15日 12:35:17 作者:Jeff的技術(shù)棧
這篇文章主要為大家介紹了Golang?gin跨域解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
gin跨域解決方案
cors1.go
package middlewares
import (
"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)
//主要設(shè)置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 router
import (
"github.com/gin-gonic/gin"
"goproejct/controllers"
"goproejct/middlewares"http://引入中間件goproject是項(xiàng)目名 根據(jù)自己情況
)
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跨域解決方案的詳細(xì)內(nèi)容,更多關(guān)于gin-跨域解決方案的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
sublime text3解決Gosublime無法自動(dòng)補(bǔ)全代碼的問題
本文主要介紹了sublime text3解決Gosublime無法自動(dòng)補(bǔ)全代碼的問題,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
使用dep 配置golang 開發(fā)環(huán)境的操作方法
下面小編就為大家?guī)硪黄褂胐ep 配置golang 開發(fā)環(huán)境的操作方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09
使用Go語言寫一個(gè)Http?Server的實(shí)現(xiàn)
本文主要介紹了使用Go語言寫一個(gè)Http?Server的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04

