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条评论