>  기사  >  백엔드 개발  >  CORS grpc 게이트웨이 GoLang

CORS grpc 게이트웨이 GoLang

WBOY
WBOY앞으로
2024-02-12 12:54:091064검색

CORS grpc 网关 GoLang

php 편집기 Strawberry가 CORS gRPC 게이트웨이 GoLang을 소개합니다. Cross-Origin Resource Sharing의 약어인 CORS는 브라우저에서 도메인 간 요청을 수행하는 데 사용되는 메커니즘입니다. gRPC는 분산 시스템을 구축하는 데 사용할 수 있는 고성능 오픈 소스 원격 프로시저 호출(RPC) 프레임워크입니다. GoLang은 높은 동시성과 단순성을 갖춘 강력한 프로그래밍 언어입니다. CORS gRPC 게이트웨이 GoLang은 CORS와 gRPC를 결합하여 Go 언어를 통해 게이트웨이를 구현하여 도메인 간 요청을 구현합니다. 이 글에서는 CORS gRPC 게이트웨이 GoLang의 원리와 사용법을 자세히 소개하여 이 기술을 더 잘 이해하고 적용할 수 있도록 돕습니다.

질문 내용

저는 vue.js 3 프론트엔드를 가지고 있고 grpc-gateway를 통해 golang 백엔드를 호출합니다. 한동안 이러고 있었는데 터널 끝에서 빛이 보입니다.

현재 Cors 문제에 직면해 있습니다. 그러나 이를 처리하는 방법에 대해 상충되는 정보를 읽고 있습니다. 그래서 모든 분들에게 도움이 되길 바라는 마음으로 포스팅을 하게 되었습니다.

다음은 grpc(gateway)에 대한 mux 서버를 초기화하는 방법의 코드입니다

으아아아

여기서 cors 구성을 추가해야 한다고 생각하는데, server.go 파일에서 그렇게 설정했는지는 모르겠습니다..

으아아아

콘솔 오류:

으아아아

이런 걸 어디에 추가해야 할지 모르겠어요

으아아아

golang grpc 게이트웨이에 뭔가 내장되어 있어야 할 것 같은데 아무것도 찾을 수 없나요?

어떤 제안이라도 대단히 감사하겠습니다.

------업데이트 1------

해봤어

으아아아

그리고

으아아아

그리고

으아아아

결합

으아아아

여전히 같은 문제가 발생합니다.. 매우 실망스럽습니다.

해결 방법

댓글에 제공한 최신 오류에 따라:

원본 'localhost:9000'의 'localhost:8080/v1/test'에서 xmlhttprequest에 대한 액세스가 cors 정책에 의해 차단되었습니다. 실행 전 요청에 대한 응답이 액세스 제어 확인에 실패했습니다. http 정상 상태가 없습니다.

귀하의 브라우저는 필요한 교차 원본 요청이 이루어질 수 있는지 확인하기 위해 preflight request(options http 방법)를 보내고 있습니다.

서버가 2xx가 아닌 응답으로 응답하고 있습니다.

이는 enablecors 함수가 요청을 grpc-gateway 핸들러로 전파하기 때문인 것 같습니다. grpc-gateway 핸들러는 enablecors 函数正在将请求传播到 grpc-gateway 处理程序,该处理程序对 options http 메소드에 만족하지 않고 오류 상태를 반환합니다. 아마도:

으아아아

이를 방지하려면 실행 전 요청을 할 때 요청을 더 이상 전파하지 않는 것이 좋습니다. 으아아아

그러나 위의 내용은 여전히 ​​Cors 처리의 합리적인 구현이 아닐 수 있습니다. 이를 위해 github.com/rs/cors와 같은 기존 패키지를 사용해야 합니다. 이 패키지는 이 문제를 합리적인 방식으로 처리하고 잠재적인 함정 등을 처리합니다.

따라서 가져오고

다음을 수행하세요. github.com/rs/cors 으아아아

모든 것이 통과되도록 시작해야 합니다. 이 라이브러리를 사용하면 특정 출처, http 메소드 등을 필요에 맞게 조정할 수 있습니다.

위 내용은 CORS grpc 게이트웨이 GoLang의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제