nodeJS无法获取session的值

在登录页面设置session后在其他页面无法获取
利用express框架,先引用session模块:

var session = require("express-session");

在路由中间件前面设置,session中间件,一定要设置在路由前面,因为中间件是顺序执行的

app.use(session({
  secret:"asdaasd",                                 //设置签名秘钥 内容可以任意填写
  cookie:{ maxAge:1000*60*60 },          			 //设置cookie的过期时间
  resave:false,                                     //强制保存,如果session没有被修改也要重新保存
  saveUninitialized:true,                          //如果原先没有session那么久设置,否则不设置
}))

这样设置完,在路由里面就可以设置session了。使用最多的场景就是在登陆的时候记录登录用户名。
未登录时页面:
在这里插入图片描述
登陆之后页面:
在这里插入图片描述
路由设置:
在这里插入图片描述
登陆的时候直接设置session。
理论上这里设置了session,只要不被清除,session就会存在,其他的路由也能获取到session的值
在这里插入图片描述
但使用ajax请求的时候,会出现无法获取到设置的session值。
主要是设置ajax请求的接口路径与设置的路径存在同源策略问题
在这里插入图片描述
这样写的ajax会出现无法获取session的问题,改成这样可以解决:
在这里插入图片描述
直接请求相对路径的接口。

猜你喜欢

转载自blog.csdn.net/qq_40375518/article/details/107395001