gin web架構解決跨域問題
來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。````golang//使用中介軟體router.Use(Cors())````````golangfunc Cors() gin.HandlerFunc {return func(c *gin.Context) {method := c.Request.Methodorigin := c.Request.Header.Get("Origin")var headerKeys []stringfor k, _ := range c.Request.Header {headerKeys = append(headerKeys, k)}headerStr := strings.Join(headerKeys, ", ")if headerStr != "" {headerStr = fmt.Sprintf("access-control-allow-origin, access-control-allow-headers, %s", headerStr)} else {headerStr = "access-control-allow-origin, access-control-allow-headers"}if origin != "" {//下面的都是亂添加的-_-~// c.Writer.Header().Set("Access-Control-Allow-Origin", "*")c.Header("Access-Control-Allow-Origin", "*")c.Header("Access-Control-Allow-Headers", headerStr)c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE")// c.Header("Access-Control-Allow-Headers", "Authorization, Content-Length, X-CSRF-Token, Accept, Origin, Host, Connection, Accept-Encoding, Accept-Language,DNT, X-CustomHeader, Keep-Alive, User-Agent, X-Requested-With, If-Modified-Since, Cache-Control, Content-Type, Pragma")c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Content-Type")// c.Header("Access-Control-Max-Age", "172800")c.Header("Access-Control-Allow-Credentials", "true")c.Set("content-type", "application/json")}//允許存取所有OPTIONS方法if method == "OPTIONS" {c.JSON(http.StatusOK, "Options Request!")}c.Next()}}````2072 次點擊