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

 郭红飞2001 发布于 2022-10-31 14:27
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;
            }
        }
    });

});

2 个回答
  • (举java后台为例)前端ajax提交表单后(var loader = new net.AjaxRequest(url, deal_data, onerror, "POST", params);)[注:net.AjaxRequest是预定义好的一个函数,其中deal_data为ajax请求成功后的回调处理函数],后台进行业务处理后,使用JSONArray放置需返回的结果,httpservletresponse写进去,返回给前端,

    JSONArray jsonArray = new JSONArray();
    jsonArray.add(0, true);
    response.getWriter().print(jsonArray);

    由ajax的回调函数处理:获得返回文本,解析成json数据,按需处理。

    var datas = eval(this.req.responseText);
    
    2022-10-31 23:13 回答
  • 你可以通过req.session.user = userInfo将用户信息赋值给req.session.user
    这个当你跳转到主页时你可以通过req.session.user获取用户信息。
    如果你的前端页面需要的话,你可以在渲染的时候传值过去,比如

    res.render('index',{
        user: req.session.user
    });
    

    如果你使用的是express框架的话可以使用res.locals.user = req.session.user;
    这样你的页面直接使用user这个变量就可以获取了,比如:

    <p class="menu">
            <% if (user) { %>
              <a class="item" href="/posts?author=<%= user._id %>">个人主页</a>
              <p class="pider"></p>
              <a class="item" href="/posts/create">发表文章</a>
              <a class="item" href="/signout">登出</a>
            <% } else { %>
              <a class="item" href="/signin">登录</a>
              <a class="item" href="/signup">注册</a>
            <% } %>
          </p>
    
    2022-10-31 23:13 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有