찾다

 >  Q&A  >  본문

html - 用ajax提交表单后,返回验证数据在页面location.href跳转到主页,怎么传递session给主页

app.post('/user/signin',function(req,res){
    var user=req.body.user;
    var {name,password}=user;

    User.findOne({name:name},function(err,user){
        if(err) console.log(err);
        if(!user) return res.json({state:1});

        user.comparePassword(password,function(err,isMatched){
            if(err) console.log(err);
            if(isMatched) {
                res.json({state:3});
            }
            else res.json({state:2});
        });

    });
});

$('#signinModal .btn-success').on('click',function(e){

$.ajax({
    type:'POST',
    url:'/user/signin',
    data:$('#signinModal form').serialize(),

    success:function(data){
        switch(data.state){
            case 1:$('#errorName').css({opacity:1});break;
            case 2:$('#errorPassword').css({opacity:1});break;
            case 3:location.href='/';break;
            }
        }
    });

});

ringa_leeringa_lee2873일 전541

모든 응답(2)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-17 15:34:28

    req.session.user = userInfo를 통해 req.session.user에 사용자 정보를 할당할 수 있습니다
    홈페이지로 이동하면 req.session.user를 통해 사용자 정보를 얻을 수 있습니다.
    프런트 엔드 페이지에 필요한 경우

    와 같이 렌더링 중에 값을 전달할 수 있습니다. 으아아아

    Express 프레임워크를 사용하는 경우 res.locals.user = req.session.user;를 사용할 수 있습니다.
    이런 방식으로 다음과 같은 사용자 변수를 사용하여 페이지를 직접 얻을 수 있습니다.

    으아아아

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 15:34:28

    (Java 백엔드를 예로 들겠습니다.) 프런트엔드 ajax가 양식을 제출한 후(var loader = new net.AjaxRequest(url, deal_data, onerror, "POST", params);) [참고: net.AjaxRequest는 사전 정의된 함수입니다. 여기서 deal_data는 ajax 요청 성공 후 콜백 처리 함수입니다. ], 백엔드가 비즈니스를 수행합니다. 처리 후 JSONArray를 사용하여 반환할 결과를 배치하고 여기에 httpservletresponse를 작성한 후 프런트엔드로 반환합니다.

    으아악

    ajax 콜백 함수로 처리: 반환 텍스트를 가져와서 json 데이터로 구문 분석하고 필요에 따라 처리합니다.

    으아악

    회신하다
    0
  • 취소회신하다