Go에서 실행 전 CORS 요청 처리
Go 서버에서 사이트 간 HTTP 요청을 제공할 때 사용자 에이전트는 실행 전 OPTIONS 요청을 보낼 수 있습니다. 요청의 안전성을 확인합니다. 이 기사에서는 이러한 실행 전 요청을 우아하게 처리하고 응답하기 위한 모범 사례를 살펴봅니다.
전통적으로 net/http 패키지를 사용하면 처리기 함수에서 요청 메서드를 확인할 수 있습니다.
func AddResourceHandler(rw http.ResponseWriter, r *http.Request) { switch r.Method { case "OPTIONS": // handle preflight case "PUT": // respond to actual request } }
또는 Gorilla의 mux 패키지를 사용하면 각 URL에 대해 별도의 프리플라이트 핸들러를 등록할 수 있습니다. 경로:
r := mux.NewRouter() r.HandleFunc("/someresource/item", AddResourceHandler).Methods("PUT") r.HandleFunc("/someresource/item", PreflightAddResourceHandler).Methods("OPTIONS")
이 프로세스를 단순화하려면 실행 전 요청을 처리하는 CORS 핸들러로 REST 핸들러를 래핑하는 것이 좋습니다. 예를 들어 net/http의 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) } } }
이 래퍼는 다음과 같이 사용할 수 있습니다.
http.Handle("/endpoint/", corsHandler(restHandler))
REST 핸들러를 래핑하면 로직을 분리하고 모든 관련 요청에 대한 CORS 핸들러로 더욱 우아하고 유지 관리가 쉬운 솔루션을 제공합니다.
위 내용은 Go에서 실행 전 CORS 요청을 우아하게 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!