首頁 > 後端開發 > Golang > 如何在 Go 中有效處理 CORS 預檢請求?

如何在 Go 中有效處理 CORS 預檢請求?

Susan Sarandon
發布: 2024-12-19 01:02:12
原創
499 人瀏覽過

How to Efficiently Handle CORS Preflight Requests in Go?

使用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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板