0

以下は、まだ存在しない場合は基本的にデータをセッションに保存し、空の JSON を返し、それ以外の場合はそのメールに対応して保存されたセッション データを送信する API です。

app.use('/session', function(req, res) {
  if (req.body.email in req.session) {
    console.log("user data already available");
    res.send(req.session[req.body.email]);
  } else {
    req.session[req.body.email] = {};
    req.session[req.body.email]["email"] = req.body.email;
    req.session[req.body.email]["gender"] = req.body.gender;
    req.session[req.body.email]["dbname"] = req.body.dbname;
    console.log("user session stored");
    res.send({});
  }
});

以下は、アプリケーションから作成している ajax 呼び出しです。これはクロスドメイン呼び出しであり、それに応じて応答ヘッダーを設定しました。

$.ajax({
    url: 'url/session',
    type: "POST",
    crossOrigin: true,
    data: {
      "email": "email",
      "gender": "all",
      "dbname": "dbname"
    },
    success: function(data) {
      console.log("inside session api call success");
      console.log(data)
    }
    });
});

問題は、postman を使用して API をヒットすると正常に動作することですが、アプリケーションでそれを使用すると、毎回セッションが上書きされ、空の json が返されます。私は何を間違っていますか?

編集: ajax 呼び出しが発生するたびに、すべてのメール ids.session の過去のセッション データが削除されることがわかりました。

4

0 に答える 0