關於axios請求跨域,session丟失的問題
阿新 • • 發佈:2019-02-10
最近做vue+node的demo中,遇到了關於在後端設定跨域訪問後session儲存不了值的問題,第一次儲存登入資訊req.session.login = user,當登入成功後去取出session中的值,發現req.session.login = undefined,查閱資料後發現了問題並得以解決。
在設定跨域訪問的程式碼如下:
app.use(function(req, res, next) { //設定跨域訪問 res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Headers'if (req.method == 'OPTIONS') { res.send(200); /*讓options請求快速返回*/ } else { next(); }})
然而CORS請求預設不傳送cookie和HTTP認證資訊,如果要把cookie傳送到伺服器,一方面要伺服器同意,指定:
而且Access-Control-Allow-Origin
另一方面需要在前端指定:
axios.defaults.withCredentials = true;