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"))
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM