• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

페이지 이동 관련 질문이 있습니다

22.04.12 15:26 작성 조회수 1.36k

0

안녕하세요 강의를 바탕으로 웹페이지를 만들어 보는데요 

1. 회원정보를 입력하고 가입버튼을 클릭하면  서버의 router.post('주소',함수)에서 데이터를 처리하고 res.render('인증페이지')로 인증번호를 입력하는 페이지를 보여주려고 하는데요

res.render로 페이지를 보여주면 화면은 변하지만 주소창의 주소는 변하지가 않습니다. 이렇게 만들어도 되는 것인가요?  아니면 주소창의 주소도 함께 이동하게 하려면 어떻게 해야 하나요?

 

2.클라이언트에서 axios를 이용해 서버로 데이터를 전달하고 서버에서는  res.redirect로 원하는 페이지 이동을 하려고 하면 이동이 안됩니다. 그래서 클라이언트에서 axios().then(()=>{ locaiont.href='이동할 주소'})이런식으로  이동하게 만들었는데 다른 좋은 방법이 있을까요? 서버에서 res.render로 해도 페이지가 이동하지 않는거 같네요 

 

 

답변 1

답변을 작성해보세요.

0

1. res.redirect(주소)를 한 후 router.get(주소)에서 해당 페이지를 제공하면 브라우저 주소까지 바뀝니다.

2. axios (ajax)쓰면 redirect, render 등등 불가능합니다. location.href 하는 수밖에 없습니다.

haralalala님의 프로필

haralalala

질문자

2022.04.12

답변 감사합니다 

그럼 1번에서 redirect로 데이터를 넘기려면 /?error=에러 이런식으로밖에 넘길 수 없는 것인가요? 

네네 아니면 세션(req.session)에 넣으셔도 됩니다

haralalala님의 프로필

haralalala

질문자

2022.04.12

 req.session.msg = '메세지' 이렇게 넣어두고 리다이렉트로 받는 router.get에서 req.session.msg을 사용 하면 되나요?

 

그리고 그냥 render로 보여주는거랑 redirect로 페이지 주소까지 바뀌는 방법중에 어느것을 쓰는게 나은? 방법인가요?

네 그러시면 됩니다. 쓰고 나서 req.session.msg 지우는 것 잊지 마세요.
새로고침을 할 때 기준으로 생각해보시면 됩니다. 사용자가 새로고침했을 때 주소가 저게 맞는 것인지를요. Post에 render이면 이상하긴 하죠.

haralalala님의 프로필

haralalala

질문자

2022.04.12

그렇군요.. 빠른 답변 감사합니당