삽질을 하고 올려본다.
node.js에서 로그인 값을 post 방식으로 전달하고 통신이 완료 되면 메인 페이지로 돌아가게 하려고 했다.
그래서 res.redirect('/')라는 함수를 주구장창 사용했지만 반응이 없었다..
벼래별 해답을 찾으며 방법을 찾는데 1시간이 걸렸다.
결론은 ajax 통신에서는 res.redirect('/') 함수가 먹히지 않는다.
ajax의 post 통신에 있어서 res는 클라이언트로 그 값을 전달해주는 역할만 한다.
ajax의 success 함수가 장식용으로만 있는것이 아니었다.
ajax는 요청한 값에 의해 응답을 확실히 받았을때 다음 작업을 할 수 있었다.
고로 내가 로그인 완료후에 다른 페이지로 접근하려면 ajax의 success 함수에 그 기능을 만들어줘야 했다.
그래서 node.js에 아래와 같이 세팅해주고
router.post('/sign_in', function(req, res, next) {
console.log(req.body);
var status = {
"status": 200,
"message": 'login success'
}
res.end(JSON.stringify(status));
});;
클라이언트에서는 아래와 같이 설정해주었다.
$.ajax({
type: "POST",
url: '/users/sign_in',
data: {
name: $(usernameSI).val(),
password: $(passwordSI).val()
},
success: function(data) {
var data = JSON.parse(data);
if(data.status == '200'){
window.location.replace("../");
}
}
});
결과적으로 클라이언트에서는 서버에서의 데이터가 제대로 된 것인지 상태코드로 전달받고,
그후 페이지 리로드를 하게 된다.
'Javascript > Node.js' 카테고리의 다른 글
node.js 파일을 업로드하고 해당 파일을 서버에 저장하는 방법 (0) | 2017.05.15 |
---|---|
nodemailer로 이메일 가입 인증하기 (2) | 2017.04.17 |
express 4.x 버전의 router 기능 (0) | 2017.04.13 |
express-generator로 node.js 기본 구조 구축하기 (0) | 2017.04.13 |
mySQL 설치 및 사용 (0) | 2017.02.13 |
댓글