发送ajax请求时如何过滤cookie?

时间:2017-01-28 09:19:15

标签: javascript jquery angularjs ajax cookies

如果您向服务器发送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总结并且它们全部转到Header请求可能超出服务器限制。

我有很多饼干,但没有人超过3kb。主要问题是:我可以按域名过滤JavaScript吗?

2 个答案:

答案 0 :(得分:0)

只需在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。

答案 1 :(得分:0)

我试图做同样的事情,看起来浏览器隐藏了对用户的这种访问。我想可能是出于安全原因。我们可以做的最多的是 specify the credentials config 在对 omitsame-origininclude 的提取中。我在 the spec 中没有找到任何内容。

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

This may be helpful.