Go for CORS 中的預檢請求處理
跨來源資源共享(CORS)通常需要瀏覽器發送預檢OPTIONS 請求來驗證是否實際的請求可以安全地發送。在 Go 中有效處理這些預檢請求可能是一個挑戰。
一種方法是使用標準 net/http 套件檢查處理函數中的請求方法。然而,這可能很乏味,特別是對於多個處理程序。
或者,Gorilla 的 mux 套件提供了一個更乾淨的解決方案。您可以為每個相關的 URL 路徑註冊一個單獨的「OPTIONS」處理程序。雖然這兩種方法都是可行的,但它們可能並不總是最優雅的。
使用中間件改良的解決方案
要進一步簡化,請考慮使用中間件方法。透過使用中間件函數包裝 REST 處理程序,您可以將 CORS 處理邏輯與實際請求處理分開。例如,使用net/http:
func corsHandler(h http.Handler) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { if (r.Method == "OPTIONS") { // Handle preflight here } else { h.ServeHTTP(w,r) } } }
然後您可以像這樣包裝REST 處理程序:
http.Handle("/endpoint/", corsHandler(restHandler))
這種方法提供了一種乾淨且可重用的方式來處理預檢請求,讓您可以專注於業務邏輯,同時確保無縫的跨域互動。
以上是Go 中介軟體如何簡化 CORS 的預檢請求處理?的詳細內容。更多資訊請關注PHP中文網其他相關文章!