有没有办法为1个请求设置cookie?

时间:2015-09-24 09:09:09

标签: javascript jquery cookies

我想设置一个cookie(使用JavaScript或jQuery)只发送一次。

我可以在提出请求之前设置一个有效期为1秒的cookie,但这似乎不太精致。我想知道是否有办法保证cookie能够在1个请求中存活,而且只有一个请求......

我看过the docs on MDN,但看不出任何符合条件的内容。

任何想法?

3 个答案:

答案 0 :(得分:0)

您可以在每次请求后使用AJAX完整处理程序删除Cookie。

https://api.jquery.com/ajaxComplete/

$(document).ajaxComplete(function() {
    // delete your cookie
});

答案 1 :(得分:0)

这是一种方法:

  1. 以 JSON 格式对 cookie 的值进行编码,例如
var c = {"foo":"bar"}
Cookies.set('test',JSON.stringify(c))
  1. 向该 cookie 值添加一个 nonce 值,例如 cookie 本身所需的到期时间,例如
var c = {"foo":"bar","expire_time":1612561366588}
Cookies.set('test',JSON.stringify(c))
  1. 在该时间过后,使用客户端或服务器上的标准 cookie 删除方法使 cookie 过期,例如
var c = JSON.parse(Cookies.get('test'))
if (c.expire_time < (new Date()).getTime()) {
  Cookies.remove('test')
}

答案 2 :(得分:-1)

看看这里:)! How do I set/unset cookie with jQuery?

在我眼里,有答案!