Go による CORS プリフライト リクエストの処理
Go で作成された RESTful バックエンド サーバーでクロスオリジン HTTP リクエストを処理するには、プリフライト CORS リクエストに対処する必要があります。これらに効果的に対処する方法は次のとおりです:
1.手動メソッドチェック:
net/http では、ハンドラー関数でリクエストメソッドをチェックできます。例:
func AddResourceHandler(rw http.ResponseWriter, r *http.Request) { switch r.Method { case "OPTIONS": // Preflight handling logic case "PUT": // Actual request response } }
2. Gorilla Mux パッケージ:
Gorilla Mux では、URL パスごとに個別のプリフライト ハンドラーを登録できます。例:
r := mux.NewRouter() r.HandleFunc("/someresource/item", AddResourceHandler).Methods("PUT") r.HandleFunc("/someresource/item", PreflightAddResourceHandler).Methods("OPTIONS")
3. HTTP ハンドラー ラッパー:
ロジックを分離して CORS ハンドラーを再利用するには、REST ハンドラーをラップすることを検討してください。たとえば、net/http:
func corsHandler(h http.Handler) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { if r.Method == "OPTIONS" { // Preflight handling } else { h.ServeHTTP(w, r) } } }
Usage:
http.Handle("/endpoint/", corsHandler(restHandler))
これらのアプローチは、Go で CORS プリフライト リクエストを処理するための洗練されたソリューションを提供します。アプリケーションのアーキテクチャに最も適したものを選択してください。
以上がGo で CORS プリフライト リクエストを効率的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。