随笔 - 27  文章 - 2  评论 - 0  阅读 - 25912

iris 框架在服务端解决跨域问题

1. 编写中间件,将允许跨域的header添加到响应头
// Cors
func Cors(ctx iris.Context) {
    ctx.Header("Access-Control-Allow-Origin""*")
    // ctx.Header("Access-Control-Allow-Headers", "DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization")
    // ctx.Header("Access-Control-Allow-Methods", "GET,POST,OPTIONS,HEAD,DELETE")
    if ctx.Method() == "OPTIONS" {
        ctx.Header("Access-Control-Allow-Methods""GET,POST,PUT,DELETE,PATCH,OPTIONS")
        ctx.Header("Access-Control-Allow-Headers""Content-Type, Accept, Authorization")
        ctx.StatusCode(204)
        return
    }
    ctx.Next()
}

func main() {
    app := iris.New()
    app.Use(recover.New())
  // 所有请求前面添加拦截器
    app.Use(Cors)
  // 如果API接口没有实现OPTIONS方法,需要给所有接口设置缺省的OPTIONS方法,不然捕捉不到对应API接口的OPTIONS请求。
    common := app.Party("/")
    {
        common.Options("*"func(ctx iris.Context) {
            ctx.Next()
        })
    }

    api := app.Party("/api")
    api.Get("/index", IndexHandler)

    app.Run(iris.Addr("0.0.0.0:8080"))
}
posted on   杜景喜  阅读(1082)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示