Go Jin フレームワークで CORS を有効にする
Go gin フレームワークは、CORS (Cross-Origin Resource Sharing) を有効にするための強力なミドルウェアを提供します。アプリケーション。このミドルウェアをアプリに追加すると、さまざまな送信元からのリクエストが API エンドポイントにアクセスできるようになります。
次の 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() } } }
ただし、このミドルウェアを使用すると、次のような結果が得られます。ステータス コードが 200 OK ですが、OPTION リクエストの後にそれ以上のアクションが発生しない場合は、重要な点を見逃している可能性があります。ステップ:
修正:
func CORSMiddleware() gin.HandlerFunc {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">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() }
}
pre>
更新されたミドルウェアでは、 c.AbortWithStatus(204) は、本文なしで 204 No Content の応答ステータスを返します。これは、OPTIONS リクエストが成功したことを示し、クライアントが実際のリクエストを続行できるようにします。
以上がGo Gin で CORS ミドルウェアを適切に設定して OPTIONS リクエストを処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。