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