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
Lepaskan: 2025-01-03 08:51:40
asal
180 orang telah melayarinya

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
  }
}
Salin selepas log masuk

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")
Salin selepas log masuk

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)
    }
  }
}
Salin selepas log masuk

Pembungkus ini boleh digunakan seperti berikut:

http.Handle("/endpoint/", corsHandler(restHandler))
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan