【问题标题】:Express Sessions GET vs POST requests快速会话 GET 与 POST 请求
【发布时间】:2020-07-01 09:00:45
【问题描述】:

使用 post 方法时我可以访问会话对象数据,但使用 get 方法时会话对象数据为空。如何使用 get 方法访问会话对象数据。 我正在使用快速会话。

前端代码

对于 POST 方法

axios.post(url,{params:data},{withCredentials: "true"})

对于 GET 方法

axios.get(url,{params:data},{withCredentials: "true"})

后端代码 用于获取和发布请求的中间件。

router.use((req: Request, res: Response, next: NextFunction) => {
  console.log(req);
  if (req.session && req.session.username) next();
  else res.status(401).send("Unauthorized");
});

【问题讨论】:

    标签: node.js axios express-session


    【解决方案1】:

    axios.get() 只接受两个参数(不是三个)。第一个是 URL,第二个是选项。您正在传递axios.get() 未查看的第三个位置的选项。因此,它永远不会看到 withCredentials: true 选项,因此不会发送会话 cookie,因此您的服务器不知道如何找到会话。

    所以,从这里改变:

    axios.get(url,{params:data},{withCredentials: "true"})
    

    到这里:

    axios.get(url,{withCredentials: "true"})
    

    注意,axios.get() 没有数据参数,因为 GET 不发送请求正文,只有 POST 或 PUT 发送正文。请参阅文档here


    注意:这经常用axios 咬人。 .post().get() 需要不同数量的参数。

    【讨论】:

      猜你喜欢
      • 2019-10-13
      • 1970-01-01
      • 1970-01-01
      • 2021-05-30
      • 1970-01-01
      • 1970-01-01
      • 2020-07-13
      • 1970-01-01
      • 2018-07-21
      相关资源
      最近更新 更多