Go에서 실행 전 CORS 요청 처리
사이트 간 HTTP 요청을 개발할 때 요청의 안전성을 확인하기 위해 실행 전 OPTIONS 요청이 발생할 수 있습니다. 이러한 요청을 적절하게 처리하는 것은 Go 컨텍스트에서 매우 중요합니다.
한 가지 기본 접근 방식은 처리기 기능에서 요청 메서드를 확인하는 것입니다.
func AddResourceHandler(rw http.ResponseWriter, r *http.Request) { switch r.Method { case "OPTIONS": // handle preflight case "PUT": // respond to actual request } }
또 다른 옵션은 Gorilla의 mux 패키지를 활용하여 관련 URL 경로에 대한 실행 전 "OPTIONS" 처리기:
r := mux.NewRouter() r.HandleFunc("/someresource/item", AddResourceHandler).Methods("PUT") r.HandleFunc("/someresource/item", PreflightAddResourceHandler).Methods("OPTIONS")
그러나 보다 우아한 접근 방식을 위해서는 래핑을 고려하세요. REST 핸들러:
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) } } }
그런 다음 핸들러를 다음과 같이 래핑할 수 있습니다.
http.Handle("/endpoint/", corsHandler(restHandler))
로직을 분리하고 CORS 핸들러를 재사용하면 코드를 간소화하고 향상시킬 수 있습니다. 유지관리가 용이합니다.
위 내용은 Go에서 실행 전 CORS 요청을 효율적으로 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!