GIN中间件---CORS---跨域解决方案

文档地址:https://github.com/gin-contrib/cors

//下载
go get github.com/gin-contrib/cors
//导入
import "github.com/gin-contrib/cors"

自己写的经典案例帮助理解

package main

import (
   "time"

   "github.com/gin-contrib/cors"
   "github.com/gin-gonic/gin"
)
func LoginAdmin(c *gin.Context){
   c.JSON(200, gin.H{
      "message": "Hello 登录成功!",
   })
}

func main() {
   router := gin.Default()
/*
   cors.New方法返回一个函数参数是c *gin.Context
   将这个参数赋值给mwCORS,直接当中间间使用,
   默认修改返回的请求头,实现跨域功能
   cors.Config为一个结构体,结构体实例后传入cors.New实现生成中间件功能
*/
   mwCORS := cors.New(cors.Config{
      //准许跨域请求网站,多个使用,分开,限制使用*
      AllowOrigins:     []string{"*"},
      //准许使用的请求方式
      AllowMethods:     []string{"PUT", "PATCH", "POST", "GET", "DELETE"},
      //准许使用的请求表头
      AllowHeaders:     []string{"Origin", "Authorization", "Content-Type"},
      //显示的请求表头
      ExposeHeaders:    []string{"Content-Type"},
      //凭证共享,确定共享
      AllowCredentials: true,
      //容许跨域的原点网站,可以直接return true就万事大吉了
      AllowOriginFunc: func(origin string) bool {
         return true
      },
      //超时时间设定
      MaxAge: 24 * time.Hour,
   })
   router.Use(mwCORS)
   router.POST("login", LoginAdmin) //管理后台登陆
   router.Run()
}

 

你可能感兴趣的:(Gin,跨域,go,golang)