Go の gin フレームワークでは、クロスオリジン リソース共有 (CORS) を設定すると、異なるオリジンからのクライアントが許可されます。リソースにアクセスします。ただし、OPTIONS リクエストを送信した後に空の応答が発生したユーザーの場合のように、CORS リクエストが予期した動作を返さないという問題が発生する可能性があります。
この問題を解決するには、ユーザーの提供されたミドルウェアを動作中のものと比較する例:
func CORSMiddleware() gin.HandlerFunc { return func(c *gin.Context) { c.Writer.Header().Set("Content-Type", "application/json") c.Writer.Header().Set("Access-Control-Allow-Origin", "*") c.Writer.Header().Set("Access-Control-Max-Age", "86400") c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, UPDATE") c.Writer.Header().Set("Access-Control-Allow-Headers", "Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, X-Max") c.Writer.Header().Set("Access-Control-Allow-Credentials", "true") if c.Request.Method == "OPTIONS" { c.AbortWithStatus(200) } else { c.Next() } } }
func CORSMiddleware() gin.HandlerFunc { return func(c *gin.Context) { c.Writer.Header().Set("Access-Control-Allow-Origin", "*") c.Writer.Header().Set("Access-Control-Allow-Credentials", "true") c.Writer.Header().Set("Access-Control-Allow-Headers", "Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With") c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, OPTIONS, GET, PUT") if c.Request.Method == "OPTIONS" { c.AbortWithStatus(204) return } c.Next() } }
相違点:
したがって、問題を解決するには、ユーザーは、特に次の方法でミドルウェアを更新して実際の例と一致させる必要があります。アボートステータスコードを修正し、許可されたメソッドを調整します。
以上がGo の Jin フレームワークで CORS ミドルウェアを適切に構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。