ホームページ > バックエンド開発 > Golang > Go Gin で CORS ミドルウェアを適切に設定して OPTIONS リクエストを処理する方法は?

Go Gin で CORS ミドルウェアを適切に設定して OPTIONS リクエストを処理する方法は?

Susan Sarandon
リリース: 2024-12-21 03:10:09
オリジナル
463 人が閲覧しました

How to Properly Configure CORS Middleware in Go Gin to Handle OPTIONS Requests?

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()
}
ログイン後にコピー

}

更新されたミドルウェアでは、 c.AbortWithStatus(204) は、本文なしで 204 No Content の応答ステータスを返します。これは、OPTIONS リクエストが成功したことを示し、クライアントが実際のリクエストを続行できるようにします。

以上がGo Gin で CORS ミドルウェアを適切に設定して OPTIONS リクエストを処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート