1. 程式人生 > >關於axios請求跨域,session丟失的問題

關於axios請求跨域,session丟失的問題

    最近做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'
, 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild'); res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
if (req.method == 'OPTIONS') { res.send(200); /*讓options請求快速返回*/ } else { next(); }})

     然而CORS請求預設不傳送cookie和HTTP認證資訊,如果要把cookie傳送到伺服器,一方面要伺服器同意,指定:

res.header('Access-Control-Allow-Origin', 'http://localhost:8080');res.header('Access-Control-Allow-Credentials', true);

     而且Access-Control-Allow-Origin

    另一方面需要在前端指定:

axios.defaults.withCredentials = true;