Go
Gin解决接口跨域问题
Gin利用中间件解决接口跨域问题
最近一段时间都在研究Go语言,并用Gin开发了一个API项目,部署线上后,遇到了跨域问题,网上查找了相关资料后,最终通过利用路由中间件解决问题,在这里跟大家分享下
我们在route.go文件创建一个中间件,代码如下:
//路由中间件 func CORSMiddleware() gin.HandlerFunc { return func(context *gin.Context) { method := context.Request.Method context.Header("Access-Control-Allow-Origin", "*") context.Header("Access-Control-Allow-Headers", "Content-Type,AccessToken,X-CSRF-Token, Authorization, Token,TokenId,TokenPower") context.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS") context.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Content-Type") context.Header("Access-Control-Allow-Credentials", "true") if method == "OPTIONS" { context.AbortWithStatus(http.StatusNoContent) } context.Next() } }
然后我们添加路由中间件,代码如下:
//路由 func initRouter() *gin.Engine { //初始化路由 router := gin.Default() //跨域中间件 router.Use(CORSMiddleware()) //定义入口 router.Any("/", Test) //http://localhost:9999 }
这样就可以解决API项目跨域问题。
0条评论