我正在使用 Node.js 和 mongodb。
我有时似乎收到 200,其他时候则收到未修改的 304。
router.get('/add-to-bag/:id', (req, res, next) => {
req.session.bag.push(req.params.id);
res.redirect('back');
});
});
最佳答案
我无法确定您使用什么堆栈来创建应用程序。看起来您正在使用 Express.js 进行路由。不过,我可以告诉您为什么会收到 304。
来自维基百科:
304 Not Modified (RFC 7232)
Indicates that the resource has not been modified since the version specified by the request headers If-Modified-Since or If-None-Match. In such case, there is no need to retransmit the resource since the client still has a previously-downloaded copy.[24]
304 表示“嘿,还记得我发送给您的最后一个答案吗?它没有改变”,因此您的浏览器将重播从缓存收到的最后一个响应,而不会发生数据传输。
这意味着您的数据正在被添加。但由于包中的数据完全相同,服务器不会再次给出完全相同的数据 200,而是发出 304。
顺便说一句:您的 API 不是 Restful。我建议使用 POST
创建新记录,而不是向不同的 URL 发出 GET
。我建议阅读 REST API 设计。一旦你掌握了它的窍门,它就非常简单了。
关于node.js - 有时 GET 返回 304 而不是 200,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44789233/