GO 路由过滤器
程序员文章站
2022-03-06 12:31:51
...
也就是说对于所有的模式,在路由之前允许跨域请求
beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{
AllowAllOrigins: true,
AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
AllowHeaders: []string{"Origin", "Authorization", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
ExposeHeaders: []string{"Content-Length", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
AllowCredentials: true,
}))
参数说明:
AllowAllOrigins 允许全部来源设置为true则所有域名都可以访问本网站接口,可以将此配置换成为AllowOrigins:[“允许访问的域名”]
AllowMethods :允许的请求类型
AllowHeaders:允许的头部信息
ExposeHeaders:允许暴露的头信息
AllowCredentials:如果设置,允许共享AuthTuffic证书,如Cookie
beego.InsertFilter过滤器
beego.InsertFilter过滤器是为某些router提供过滤功能,可以设置在某个路由访问时进行额外的操作。通过参数设置可以设置过滤器执行的时刻。
如下所示beego.InsertFilter有一下几个参数: InsertFilter(pattern string, pos int, filter FilterFunc, params …bool)
pattern:路由规则,过滤器作用的路由
pos : 过滤器执行的时刻,有以下5种
beego.BeforeStatic
beego.BeforeRouter 访问路由之前
beego.BeforeExec 访问路由之后执行controller之前
beego.AfterExec 执行controller之后调用
beego.FinishRouter 结束路由之后调用
filter:过滤器函数,按照上述规定的时刻进行的过滤的相应逻辑。
上一篇: python过滤工具