您的位置:首页技术文章
文章详情页

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

【字号: 日期:2023-10-07 08:03:34浏览:64作者:猪猪

问题描述

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; }} });

});

问题解答

回答1:

你可以通过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 href='https://www.haobala.com/posts?author=<%= user._id %>'>个人主页</a> <p class='pider'></p> <a href='https://www.haobala.com/posts/create'>发表文章</a> <a href='https://www.haobala.com/signout'>登出</a><% } else { %> <a href='https://www.haobala.com/signin'>登录</a> <a href='https://www.haobala.com/signup'>注册</a><% } %> </p>回答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);

标签: HTML