【发布时间】:2015-03-13 08:32:05
【问题描述】:
正如它所说的那样。我试图在 Express 会话中保存一些数据,而 Express 似乎将每个 AJAX 请求视为一个单独的会话,因此不保存我的数据。
在客户端
$.ajax({
url: '/orders',
method: 'post',
data: { item: item }
});
在服务器上
router.post('/orders', function(req, res) {
var sess = req.session,
order = sess.order || [],
item = req.body.item || '',
quantity = req.body.quantity || 1;
if (!item) return res.status(404).end();
if (order[item]) {
order[item] += quantity;
} else {
order[item] = quantity;
}
//save our order to the session
req.session.order = order;
req.session.save();
console.log(req.session.order); // verified that req.session.order is set
return res.status(200).end();
});
这不是 CORS 请求 - 这是我从本地运行的客户端访问本地服务器。
【问题讨论】:
-
你有
.success回调吗? -
我不认为这很重要,但即使我有一个,行为也是一样的。
-
我相信会话字符串应该与 ajax 请求一起发送到服务器。例如,在 HTTP Cookie 标头中。是吗?有时 AJAX 请求与 Postman 扩展一起使用,但在应用程序中不可用。您可以尝试使用 Postman 吗?
-
有趣的是,如果你的会话变量类型是一个数组,它不会保存它的内容。我所要做的就是将
order = sess.order || []更改为order = sess.order || {} -
你的客户端有
connection.sidcookie吗?
标签: javascript jquery node.js express