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

Bagaimana Mengendalikan Permintaan Prapenerbangan CORS dengan Cekap dalam Go?

Susan Sarandon
Lepaskan: 2024-12-19 01:02:12
asal
486 orang telah melayarinya

How to Efficiently Handle CORS Preflight Requests in Go?

Mengendalikan Permintaan Prapenerbangan CORS dengan Go

Dalam pelayan bahagian belakang RESTful yang ditulis dalam Go, pengendalian permintaan HTTP silang asal memerlukan menangani permintaan CORS prapenerbangan . Inilah cara untuk menangani mereka dengan berkesan:

1. Semakan Kaedah Manual:

Dalam net/http, kaedah permintaan boleh disemak dalam fungsi pengendali. Contohnya:

func AddResourceHandler(rw http.ResponseWriter, r *http.Request) {
  switch r.Method {
  case "OPTIONS":
    // Preflight handling logic
  case "PUT":
    // Actual request response
  }
}
Salin selepas log masuk

2. Pakej Gorilla Mux:

Gorilla Mux membenarkan pendaftaran pengendali pra-penerbangan yang berasingan untuk setiap laluan URL. Contohnya:

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

3. Pembalut Pengendali HTTP:

Untuk memisahkan logik dan menggunakan semula pengendali CORS, pertimbangkan untuk membalut pengendali REST. Contohnya, dalam 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)
    }
  }
}
Salin selepas log masuk

Penggunaan:

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

Pendekatan ini menyediakan penyelesaian yang elegan untuk mengendalikan permintaan pra-penerbangan CORS dalam Go. Pilih yang paling sesuai dengan seni bina aplikasi anda.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Permintaan Prapenerbangan CORS dengan Cekap 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