使用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) } } }
用法:
http.Handle("/endpoint/", corsHandler(restHandler))
這些方法為在 Go 中處理 CORS 預檢請求提供了優雅的解決方案。選擇最適合您的應用程式架構的一個。
以上是如何在 Go 中有效處理 CORS 預檢請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!