html - 用ajax提交表单后,返回验证数据在页面location.href跳转到主页,怎么传递session给主页
本文介绍了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;
}
}
});
});
解决方案
你可以通过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这个变量就可以获取了,比如:
<div class="menu">
<% if (user) { %>
<a class="item" href="/posts?author=<%= user._id %>">个人主页</a>
<div class="divider"></div>
<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>
<% } %>
</div>
这篇关于html - 用ajax提交表单后,返回验证数据在页面location.href跳转到主页,怎么传递session给主页的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文