반응형
우선 이건 내가 프로젝트 진행중에 겪었던 일을 바탕으로 했기 때문에 필요한 사람만 참고하면 될 것 같다.
우리 페이지의 게시판 후기 등록 페이지인데 기존의 <form> 태그를 사용하지 않고 진행중이어서 저 등록버튼도 <submit> 기능을 담고 있지 않은 그저 일반 버튼에 불과한 상태다. 데이터를 컨트롤러단에 보내는 작업은 전부다 jquery ajax 를 이용해서 처리했다. 물론 <form>을 이용해서 submit 으로 편하게 처리를 해줄 수 있었지만 한번 새롭게 해보고 싶어서 데이터를 주고 받고 하는 작업을 ajax를 통해서 했었다.
문제점은 post 방식으로 보내주고 나서 컨트롤러에서 redirect 로 페이지를 변경해주고 싶었지만 작동을 하지 않았다. 글을 등록하면 바로 그 등록된 페이지(detail 페이지)로 가고 싶었는데 그 방법을 찾다가 location.replace() 함수를 이용해보았다.
우선 나는 ajax로 처리를 해주고 있기 때문에 success 부분에서 페이지 리로딩을 시켜주었다.
이런식으로 저장시킬 데이터들을 보내고 받아올때 내가 방금 등록한 그 디테일 페이지의 id 값이 필요해서 data 라는 이름으로 받아주어서 url 매핑에 적어주었다.
location.replace() 인자값으로 내가 보내고 싶은 페이지의 url 정보를 넣어주면 되겠다.
간단한 정리!
** 스크립트에서 페이지 이동을 시켜주고 싶으면 location.replace() 사용
다만 reaplace는 history 가 남지 않으므로 location.assign 혹은 href 사용
** 물론 ajax 는 싱글페이지로 화면의 데이터를 바꿔주면서 처리해주기 위함이니 웬만하면 <form> <submit> 을 이용해서 컨트롤러에서 redirect: 를 써주면 쉽게 해결되겠다. (나만...복잡하게...ㅠㅠ)
반응형
'JavaScript & jQuery' 카테고리의 다른 글
<javascript> Scope (0) | 2020.10.13 |
---|---|
append(), prepend()의 차이점 (1) | 2020.08.03 |
<javascript> 비동기 처리 (Promise, async, await) (0) | 2020.07.19 |
<javascript>텍스트 에디터, 텍스트 편집기 만들기 (1) | 2020.07.18 |
<javascript>객체 (비구조화 할당, 함수) (0) | 2020.07.18 |