ホームページ > バックエンド開発 > Golang > Go ミドルウェアは CORS のプリフライト リクエストの処理をどのように簡素化できるでしょうか?

Go ミドルウェアは CORS のプリフライト リクエストの処理をどのように簡素化できるでしょうか?

Linda Hamilton
リリース: 2024-12-18 03:33:21
オリジナル
913 人が閲覧しました

How Can Go Middleware Simplify Preflight Request Handling for CORS?

Go for CORS でのプリフライト リクエストの処理

Cross-Origin Resource Sharing (CORS) では、多くの場合、ブラウザーがプリフライト OPTIONS リクエストを送信して、実際のリクエストは安全に送信できます。 Go でこれらのプリフライト リクエストを効率的に処理するのは難しい場合があります。

1 つのアプローチは、標準の net/http パッケージを使用してハンドラー関数内でリクエスト メソッドをチェックすることです。ただし、特に複数のハンドラの場合、これは面倒な場合があります。

代わりに、Gorilla の mux パッケージはよりクリーンなソリューションを提供します。関連する URL パスごとに個別の「OPTIONS」ハンドラーを登録できます。どちらの方法も実行可能ではありますが、必ずしも最もエレガントであるとは限りません。

ミドルウェアを使用した改善されたソリューション

さらに簡素化するには、ミドルウェア アプローチの使用を検討してください。 REST ハンドラーをミドルウェア関数でラップすると、CORS 処理ロジックを実際のリクエスト処理から分離できます。たとえば、net/http:

func corsHandler(h http.Handler) http.HandlerFunc {
  return func(w http.ResponseWriter, r *http.Request) {
    if (r.Method == "OPTIONS") {
      // Handle preflight here
    } else {
      h.ServeHTTP(w,r)
    }
  }
}
ログイン後にコピー

を使用すると、次のように REST ハンドラーをラップできます:

http.Handle("/endpoint/", corsHandler(restHandler))
ログイン後にコピー

このアプローチは、プリフライト リクエストを処理するクリーンで再利用可能な方法を提供し、シームレスなクロスオリジン対話を確保しながら、ビジネス ロジックに集中できます。

以上がGo ミドルウェアは CORS のプリフライト リクエストの処理をどのように簡素化できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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