【发布时间】:2021-07-13 02:51:18
【问题描述】:
如果您向服务器发送 ajax 请求并且您的 cookie 太大,您会收到以下消息:
错误请求
您的浏览器发送了一个此服务器无法理解的请求。 请求头字段的大小超出服务器限制。
饼干
在发送请求之前,有没有办法通过 javascript(jQuery、Angular)过滤 cookie?例如:我在某个网站上有 25kb 的 cookie(服务器限制为 16kb),其中有一个会话 cookie。如何仅将会话 cookie 发送到服务器或我想要的 cookie?在不删除多余 cookie 的情况下是否可以这样做?
另一个例子:
我有域 cookie .mysite.com。如果我去one.mysite.com 我会得到另一个cookie,当我去two.mysite.com 时会安装新的cookie 等等。当我从其中一个站点发送ajax 请求时,cookie 正在汇总,它们都转到可能超过的请求标头服务器限制。
我有很多 cookie,但没有一个超过 3kb。主要问题是:我可以通过域名过滤 JavaScript 中的 cookie 吗?
【问题讨论】:
-
我有点困惑...如果 cookie 对您的服务器来说太大(请注意 cookie 存储在限制为 4k 的客户端上),这应该是一个问题,而不仅仅是ajax 请求,但任何 http 请求。请提供更多信息。为什么你的 cookie 超过 4k(标准 cookie 的大小限制)?
-
@jeremy 我有域 cookie
.mysite.com。如果我去one.mysite.com我会得到另一个cookie,当我去two.mysite.com时会安装新的cookie 等等。当我从其中一个站点发送ajax 请求时,cookie 正在汇总,它们都转到可能超过的请求标头服务器限制。 -
是的,非常令人困惑。您正在生成多少个 cookie 预域?是否有超过 4k 的 cookie?您始终可以一次调用一个 cookie,但如果太大,那么您将在一个 cookie 中存储太多。可能需要重新考虑您的代码。
-
@CesarBielich 我有很多 cookie,但没有一个超过 3kb。主要问题是:我可以按域名过滤 JavaScript 中的 cookie 吗?
-
简单地说,没有。 cookie 存储在客户端上,并为 http 请求提供状态信息。你可能做错了什么。重新思考、重构、重新编码……
标签: javascript jquery angularjs ajax cookies