首页 > 客户端页面跳转后session丢失

客户端页面跳转后session丢失

RT,登录页面中提交请求


对应的路由处理

我把从数据库里取出来的account信息放到了session中,然后返回成功状态和一个重定向url,然后在action中直接用window.location.href = redirecurl来跳转,服务端能收到get请求,但是req.session中得account信息却丢失了,这是为什么???


session本质上是一个ID,要么在post/get里,要么在cookies里,你打开调试工具看看发出去什么了


明显是session id丢失了。推测应该是没有更新http response的头部的set cookie属性,导致session id没有返回给客户端。抓个包包看看服务端在发送重定向响应的时候有没有把session id也放到response的头部。然后再看看客户端在重定向再请求服务端的时候有没有把session id带上去


服务器端有多台的话,session就会丢失。问问你们的服务端工程师
研究一下cookie与session的原理,你就明白了


这一express中默认的session对应的cookie名称是一个固定值,如果你在一个域名上部署了多个express应用,但是没有设置session的cookie名称,就会互相冲突,所以还是设置一下:

app.use(session({
    secret: '这里是加密参数',
    key:'session对应的cookie名称',
    resave: false,
    saveUninitialized: true
})
);

上面的例子是基于express4.0给出的


检查是否在同一域名下面跳转

【热门文章】
【热门文章】