• gin解决CORS跨域问题


    直接设置跨域参数

    新建 cors 文件

    package cors
    
    import (
    	"time"
    
    	"github.com/gin-contrib/cors"
    	"github.com/gin-gonic/gin"
    )
    
    func Cors() gin.HandlerFunc {
    	c := cors.Config{
    		AllowAllOrigins: true,
    		AllowMethods:    []string{"GET", "POST", "PUT", "DELETE", "PATCH"},
    		AllowHeaders:    []string{"Content-Type", "Access-Token", "Authorization"},
    		MaxAge:          6 * time.Hour,
    	}
    
    	return cors.New(c)
    }
    

    CORS 跨域中间件

    新建 cors 文件

    package cors
    
    import (
    	"net/http"
    
    	"github.com/gin-gonic/gin"
    )
    
    // 处理跨域请求,支持options访问
    func Cors() gin.HandlerFunc {
    	return func(c *gin.Context) {
    		method := c.Request.Method
    
    		c.Header("Access-Control-Allow-Origin", "*")
    		c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, UPDATE")
    		c.Header("Access-Control-Allow-Headers", "*")
    		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", "true")
    
    		//放行所有OPTIONS方法
    		if method == "OPTIONS" {
    			c.AbortWithStatus(http.StatusNoContent)
    		}
    		// 处理请求
    		c.Next()
    	}
    }
    
    

    二选一 跨域设置

    func main() {
    	r := gin.New()
    
            // 跨域设置
    	r.Use(Cors())
    
    	r.GET("/test", func(c *gin.Context) {
    		example := c.MustGet("example").(string)
    
    		// 打印:"12345"
    		log.Println(example)
    	})
    
    	// 监听并在 0.0.0.0:8080 上启动服务
    	r.Run(":8080")
    }
    
  • 相关阅读:
    linux下编译安装mysql
    Linux系统信息查看命令(转载)
    python使用memcached
    ./configure 命令使用和参数解析
    linux平台下使用 nginx + spawn-cgi 部署webpy程序
    冒泡排序
    在gitub上添加ssh key
    给p标签做单行省略 设置宽度的问题
    移动端的无缝滚动
    canvas-图片翻转
  • 原文地址:https://www.cnblogs.com/niuben/p/15572189.html
Copyright © 2020-2023  润新知