RT,登录页面中提交请求
对应的路由处理
我把从数据库里取出来的account信息放到了session中,然后返回成功状态和一个重定向url,然后在action中直接用window.location.href = redirecurl来跳转,服务端能收到get请求,但是req.session中得account信息却丢失了,这是为什么???
window.location.href = redirecurl
req.session
认证0级讲师
检查是否在同一域名下面跳转
这一express中默认的session对应的cookie名称是一个固定值,如果你在一个域名上部署了多个express应用,但是没有设置session的cookie名称,就会互相冲突,所以还是设置一下:
app.use(session({ secret: '这里是加密参数', key:'session对应的cookie名称', resave: false, saveUninitialized: true }) );
上面的例子是基于express4.0给出的
明显是session id丢失了。推测应该是没有更新http response的头部的set cookie属性,导致session id没有返回给客户端。抓个包包看看服务端在发送重定向响应的时候有没有把session id也放到response的头部。然后再看看客户端在重定向再请求服务端的时候有没有把session id带上去
服务器端有多台的话,session就会丢失。问问你们的服务端工程师研究一下cookie与session的原理,你就明白了
session本质上是一个ID,要么在post/get里,要么在cookies里,你打开调试工具看看发出去什么了
检查是否在同一域名下面跳转
这一express中默认的session对应的cookie名称是一个固定值,如果你在一个域名上部署了多个express应用,但是没有设置session的cookie名称,就会互相冲突,所以还是设置一下:
上面的例子是基于express4.0给出的
明显是session id丢失了。推测应该是没有更新http response的头部的set cookie属性,导致session id没有返回给客户端。抓个包包看看服务端在发送重定向响应的时候有没有把session id也放到response的头部。然后再看看客户端在重定向再请求服务端的时候有没有把session id带上去
服务器端有多台的话,session就会丢失。问问你们的服务端工程师
研究一下cookie与session的原理,你就明白了
session本质上是一个ID,要么在post/get里,要么在cookies里,你打开调试工具看看发出去什么了