2017-10-01 18 views
0

을받은 :ReactJS는 302 리디렉션으로 대응이 내 스택입니다 CORS 오류

  1. 프런트 엔드 서버 : 노드 + ReactJS (f.com)
  2. 백엔드 서버 (API) : Golang (b.com)

나는 npm start 명령을 통해 내 프런트 엔드 서버를 실행하기 위해 create-react-app을 사용하는 개발 환경에서이 작업을 수행하고 있습니다. sso.example.com/login에 제공된 SSO를 사용하여 인증을 수행하려고합니다. 적절한 승인없이 백엔드 서버에 요청할 때마다 SSO 페이지로의 HTTP 302 리디렉션으로 응답하는 것이 이상적입니다. 그래서 순서는 다음과 같습니다

  1. ReactJS는
  2. Golang가 http.Redirect로 응답 b.com/users에 요청을 GET 전송 ("sso.example.com/login")
  3. ReactJS의 응용 프로그램은 내가 통제가없는 어느 sso.example.com에서 CORS 오류를 가져옵니다 추가 Access-Control-Allow-Origin:* 응답 헤더

내 GET 요청을 어떻게 성공적으로 리디렉션 할 수 있습니까?

+0

반응 앱이'b.com' 또는'sso.example.com'에서 cors 오류 응답을 받습니까? – mkopriva

+0

@mkopriva 오, 그래, 나는 그 질문에 추가했다. 그것은'sso.example.com'에서 온 것입니다 – yonasstephen

+0

'sso.example.com'이 교차 원 리 요청을 허용하지 않고 액세스 제어를 수정하기 위해 서버에 액세스 할 권한이없는 경우 응답하는 응용 프로그램이 항상 실행될 지 확신하지 못합니다 리소스에 액세스 할 수 있어야합니다. – mkopriva

답변

1

경우에 따라 브라우저에서 클라이언트 쪽에서 리다이렉션하는 것이 더 쉬울 수 있으므로 CORS 문제가 발생하지 않습니다 (SSO 웹 사이트 URL에서 직접 액세스하기 때문에).

당신은 복잡한 인 반응을 함께 할 중 하나를 할 수

: Programmatically navigate using react router V4

또는 쉽지만 검색 기록에 문제가 발생할 수 있습니다 일반 자바 스크립트로 window 함께 할 :

window.location.href = "https://www.example.com"; 

https://appendto.com/2016/04/javascript-redirect-how-to-redirect-a-web-page-with-javascript/

+0

아, 그래, 그게 내가 생각했던거야. 이 시나리오에서 CORS가 리디렉션되는 것을 피하기 위해 할 수있는 일이 있다면 생각하고있었습니다. 조언 tho을위한 감사합니다! – yonasstephen