zoukankan      html  css  js  c++  java
  • gin框架开启web跨域


    前言
    gin开启跨域,只需要添加一个全局中间件到路由器即可

    gin 中间件

    gin的中间件可以添加到全局, 也可以添加到单个路由上

    添加到全局

    r := gin.New()
    r.Use(gin.Logger())
    r.Use(gin.Recovery())
    

    这里的两个中间件就是 gin.Default()帮我们初始化的两个中间件

    添加到单个路由

    authorized := r.Group("/")
    authorized.Use(AuthRequired())
    

    gin开启跨域

    gin开启跨域其实还是很简单的, 演示代码如下:

    package main
    
    import (
    	"github.com/gin-gonic/gin"
    )
    
    func main() {
    	r := gin.Default()
            r.Use(Cors())  // 主要是这里
    
    	r.GET("/test", function(){
                c.String(200, "success")
            })
    	_ = r.Run(":8080")
    }
    
    // 开启跨域函数
    func Cors() gin.HandlerFunc {
    	return func(c *gin.Context) {
    		c.Writer.Header().Set("Access-Control-Allow-Origin", "*")
    		c.Writer.Header().Set("Access-Control-Expose-Headers", "Access-Control-Allow-Origin")
    		c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, OPTIONS, GET, PUT")
    
    		if c.Request.Method == "OPTIONS" {
    			c.AbortWithStatus(204)
    			return
    		}
    
    		defer func() {
    			if err := recover(); err != nil {
    				core.Logger.Error("Panic info is: %v", err)
    				core.Logger.Error("Panic info is: %s", debug.Stack())
    			}
    		}()
    
    		c.Next()
    	}
    }
    
  • 相关阅读:
    vue项目中兼容ie8以上浏览器的配置
    vue项目中event bus的简单使用
    js中的正则表达式小结1
    sourceTree跳过注册
    日期时间格式化
    阿里矢量图标库的使用
    mySql 常用命令
    php 常用的系统函数
    php mySql常用的函数
    php 关于php创建 json文件 和 对文件增删改查 示例
  • 原文地址:https://www.cnblogs.com/shuiche/p/gin_cors.html
Copyright © 2011-2022 走看看