【发布时间】:2019-09-14 05:53:41
【问题描述】:
背景:我的网站上的一个格式错误的 cookie(来自我的一个附属页面)收到 400 个错误(以及一个空白的 400 页响应)。我已经编写了删除 cookie 的代码,但我的一些客户仍然收到错误,因为它在他们的缓存中。一旦他们清除缓存,问题就解决了。
这个问题在我的 .NET 代码库中通过简单地忽略 400 错误而被完全规避,我想在 Express JS 中做同样的事情。
问:我想在出现 400 错误(通常由有缺陷的 cookie 引起)时明确忽略所有 cookie,或者至少一起忽略该错误。有没有办法做到这一点?
我的 ClearDefectiveCookies 函数供参考(正常运行)
const clearDefectiveCookies = (req, res, next) => {
const cookies = req.cookies;
const defectiveCookies = Object.keys(cookies).filter(key => typeof cookies[key] === 'string' && (cookies[key].charAt(0) === '='));
if (defectiveCookies.length > 0) {
defectiveCookies.forEach(defectiveCookie => {
res.clearCookie(defectiveCookie);
});
}
next();
};
有问题的 Cookie 供参考
名称:xyz_123 和值:=NaN=xyz=123
【问题讨论】:
标签: javascript express cookies session-cookies http-status-code-400