当您发送ajax请求时,如何过滤cookie



如果您向服务器发送ajax请求,而您的cookie大小过大,则会收到以下消息:

错误请求

您的浏览器发送了一个此服务器无法理解的请求。请求标头字段的大小超过服务器限制。

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正在汇总,它们都会进入请求的标头,这可能会超过服务器限制。

我有很多饼干,但没有一个超过3公斤。主要问题是:我可以按域名过滤JavaScript中的cookie吗?

只需在cookie上设置域和路径属性,如:

<script type="text/javascript">
var cookieName = 'HelloWorld';
var cookieValue = 'HelloWorld';
var myDate = new Date();
myDate.setMonth(myDate.getMonth() + 12);
document.cookie = cookieName +"=" + cookieValue + ";expires=" + myDate + ";domain=.example.com;path=/";
</script>

然后您可以根据cookie的域值调用它。

我试图做同样的事情,但浏览器似乎隐藏了对用户的这种访问。我想可能是出于安全原因。我们可以做的最大操作是在获取omitsame-origininclude时指定凭据配置。我在规格中没有找到任何东西

另一种选择是使用自定义HTTP头,而不是cookie。

这可能会有所帮助。

最新更新