2017-10-23 1 views
0

은 내가 'toPost가'내가 백엔드에 필요한 키 값 쌍의 무리와 함께 객체 인 노드React에서 Node로 Ajax를 호출 할 때 "Res.redirect"가 작동하지 않습니까? 클라이언트 측에서

const res = await axios.post('/api/stripe', toPost); 

에 아약스 전화를합니다.

백엔드에서 몇 비트를 수행 한 후 사용자를 '감사합니다'페이지로 리디렉션하고 싶습니다. 그래서 나는 응답을 끝낼 수 있다고 생각했습니다.

res.redirect('/thankyou'); 

이것은 상태 코드 200이있는 개발자 도구의 네트워크 탭에 나타나지만 아무 일도 일어나지 않습니다.

도움이 필요하시면 매우 감사드립니다.

+2

을 당신이 아약스 요청 내에서 리디렉션을 수행 할 수 없습니다 생각, 당신의 응답에 플래그 어떤 종류의 설정을 시도하고 window.location.href을 플래그가 클라이언트 측에서 설정되면. – Akhil

+0

Ajax 요청 도중 서버 리다이렉션을 할 수 없다는 것에 동의합니다. React를 사용하고 있다면 (제목에서 알 수 있듯이) 어쨌든 서버 측 리다이렉션을해서는 안됩니다. 이로 인해 응용 프로그램의 흐름이 불필요하게 중단됩니다. 애플리케이션에서 React Router를 사용하고 완료되면 구성 요소를 렌더링하는 것이 좋습니다. https://reacttraining.com/react-router/web/api/Redirect – earthling

답변

0

리디렉션 클라이언트 자바 스크립트를 서버 리디렉션으로 리디렉션 할 수 없습니다.

클라이언트에서이 시도 :

axios.post('/api/stripe', toPost) 
.then((response) => { 
    if (response.ok && window){ 
    window.location.href="/thankyou"; 
    // or <Redrect to="/thankyou" /> if you are using react-router 
    } 
}) 
+0

manb. 고마워. 모든 일. res.redirect로 끝났다. – harrydry

관련 문제