Rumah >pembangunan bahagian belakang >Golang >Bagaimana Mengendalikan Permintaan CORS Prapenerbangan dengan Anggun dalam Go?

Bagaimana Mengendalikan Permintaan CORS Prapenerbangan dengan Anggun dalam Go?

Patricia Arquette
Patricia Arquetteasal
2025-01-03 08:51:40148semak imbas

How to Elegantly Handle Preflight CORS Requests in Go?

Mengendalikan Permintaan CORS Prapenerbangan dalam Go

Apabila menyampaikan permintaan HTTP merentas tapak daripada pelayan Go, ejen pengguna boleh menghantar permintaan OPTIONS prapenerbangan untuk mengesahkan keselamatan permintaan. Artikel ini meneroka amalan terbaik untuk mengendalikan dan membalas permintaan prapenerbangan ini dengan elegan.

Secara tradisinya, menggunakan pakej net/http, seseorang boleh menyemak kaedah permintaan dalam fungsi pengendali:

func AddResourceHandler(rw http.ResponseWriter, r *http.Request) {
  switch r.Method {
  case "OPTIONS":
    // handle preflight
  case "PUT":
    // respond to actual request
  }
}

Sebagai alternatif, dengan pakej mux Gorilla, seseorang boleh mendaftarkan pengendali pra-penerbangan yang berasingan untuk setiap URL laluan:

r := mux.NewRouter()
r.HandleFunc("/someresource/item", AddResourceHandler).Methods("PUT")
r.HandleFunc("/someresource/item", PreflightAddResourceHandler).Methods("OPTIONS")

Untuk memudahkan proses ini, pertimbangkan untuk membungkus pengendali REST anda dengan pengendali CORS yang mengendalikan permintaan sebelum penerbangan. Contohnya, menggunakan kaedah Net/http's Handle:

func corsHandler(h http.Handler) http.HandlerFunc {
  return func(w http.ResponseWriter, r *http.Request) {
    if (r.Method == "OPTIONS") {
      //handle preflight in here
    } else {
      h.ServeHTTP(w,r)
    }
  }
}

Pembungkus ini boleh digunakan seperti berikut:

http.Handle("/endpoint/", corsHandler(restHandler))

Dengan membalut pengendali REST, anda boleh memisahkan logik anda dan menggunakan semula Pengendali CORS untuk semua permintaan yang berkaitan, memberikan penyelesaian yang lebih elegan dan boleh diselenggara.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Permintaan CORS Prapenerbangan dengan Anggun dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn