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裡,你打開調試工具看看發出去什麼了