【问题标题】:Losing ajax data in Express middleware在 Express 中间件中丢失 ajax 数据
【发布时间】:2019-03-26 07:04:35
【问题描述】:

我有一个已授权用户登录的 Node/Express 应用程序。然后我让该用户使用数据进行 ajax 调用到受保护的路由。我有中间件确保用户在继续路由之前经过身份验证。数据在 ajax 调用和路由之间丢失。有没有办法防止数据在这个中间件中丢失?

前端.js文件

$.ajax({
  url: "/voted",
  method: "POST",
  data: { item1: "some data", item2: "other data" },
  success: () => { console.log("success") },
  failure: () => { console.log("failure") }
});

路由中间件

// data being lost here
const protectedMiddleware = (req, res, next) => {

  if (req.isAuthenticated()) {
    next();
  }
  else {
    res.redirect("/login");
  }
}

在我的 routes.js 文件中路由

app.post("/voted", protectedMiddleware, (req, res) => {

  let item1 = req.query.item1;
  let item2 = req.query.item2;
  console.log(item1); // undefined
  console.log(item2); // undefined

});

对于 item1 和 item2,我得到了未定义,而它们应该是“一些数据”和“其他数据”。

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    req.query 由 url 中的查询参数设置。因此,如果请求 url 看起来像 /voted?item1=somedata,则可以访问 req.query.item1

    您正在寻找的是req.body,因为您在请求的body 中传递您的数据。

    您可以使用req.body.item1req.body.item2 访问item1item2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-20
      • 2016-05-05
      相关资源
      最近更新 更多