検索

ホームページ  >  に質問  >  本文

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_lee2785日前523

全員に返信(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
  • キャンセル返事