正如它所说的那样。我正在尝试将一些数据保存为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请求 - 是我从本地运行的客户端访问我的本地服务器。
答案 0 :(得分:1)
将以下代码添加到ur $.ajax
配置可能会解决问题:
$.ajax({
xhrFields: {
withCredentials: true
},
... // other settings
})
答案 1 :(得分:0)
使用fetch为我工作,如下所示
fetch(url, { credentials: 'include',
method: 'post',
...// other fetch configs
}).then(onsuccesscallback)
密钥在配置提取时包含凭据