node.js - 客户端页面跳转后session丢失
PHP中文网
PHP中文网 2017-04-17 12:09:08
0
5
838

RT,登录页面中提交请求


对应的路由处理

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

PHP中文网
PHP中文网

认证0级讲师

全部回覆(5)
左手右手慢动作

檢查是否在同一網域下方跳轉

巴扎黑

這一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帶上去

Ty80

伺服器端有多台的話,session就會遺失。問問你們的服務端工程師
研究一下cookie與session的原理,你就明白了

巴扎黑

session本質上是一個ID,要么在post/get裡,要么在cookies裡,你打開調試工具看看發出去什麼了

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板