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

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

Susan Sarandon
풀어 주다: 2024-12-19 01:02:12
원래의
486명이 탐색했습니다.

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)
    }
  }
}
로그인 후 복사

Usage:

http.Handle("/endpoint/", corsHandler(restHandler))
로그인 후 복사

이러한 접근 방식은 Go에서 CORS 실행 전 요청을 처리하기 위한 우아한 솔루션을 제공합니다. 귀하의 애플리케이션 아키텍처에 가장 적합한 것을 선택하세요.

위 내용은 Go에서 CORS 실행 전 요청을 효율적으로 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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