> 백엔드 개발 > Golang > Go에서 실행 전 CORS 요청을 효율적으로 처리하는 방법은 무엇입니까?

Go에서 실행 전 CORS 요청을 효율적으로 처리하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-25 01:48:17
원래의
212명이 탐색했습니다.

How to Efficiently Handle Preflight CORS Requests in Go?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿