Rumah >pembangunan bahagian belakang >Golang >Bagaimana Mengendalikan Permintaan CORS Prapenerbangan dengan Anggun dalam 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!