Потеря данных Ajax в промежуточном ПО Express - PullRequest
0 голосов
/ 26 марта 2019

У меня есть приложение 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");
  }
}

route в моем файле rout.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 я получаю неопределенное значение, тогда как они должны быть «некоторые данные» и «другие данные».

1 Ответ

2 голосов
/ 26 марта 2019

req.query устанавливается из параметров запроса в URL.Таким образом, req.query.item1 будет доступен, если URL-адрес запроса будет выглядеть как /voted?item1=somedata.

. Вы ищете req.body, поскольку вы передаете свои данные в body запроса.

Вы можете получить доступ к item1 и item2 как req.body.item1 и req.body.item2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...