Cookie可以存储,但不能删除

时间:2016-07-19 03:58:43

标签: javascript cookies expired-cookies

我正在进行练习以熟悉cookie的设置和删除。当然,我把它放在一个虚假的面包店里。

我试图遵循Hamper模型的cookie,并且能够将它们存储到控制台上。但由于某种原因,我试图通过Javascript从本地服务器删除它们的每个方法都失败了。我尝试过Cookies.expire(),Cookies.set((key,null))。get(key)等。即使我重新启动服务器,它们似乎都没有用。

为方便起见,我在下面附上了一个Github存储库。

https://github.com/microsoft/gsl

1 个答案:

答案 0 :(得分:1)

confections2.js中有一个功能

document.getElementById('Order').on('click', function(){

哪种语法不正确。相反它应该是

    document.getElementById('Order').onclick = function() {
  var name = document.getElementById('consumer_name').value;
    Cookies.set('consumer_name', name).get('consumer_name');
  var chocolate = document.getElementById('chocolate').value;
    Cookies.set('chocolate', chocolate).get('chocolate');
  var sugar = document.getElementById('sugar').value;
    Cookies.set('sugar', sugar).get('sugar');
  var lemon = document.getElementById('lemon').value;
    Cookies.set('lemon', lemon).get('lemon');
}

然后在index.html中更改

<input type="button" value="Reset" onclick="clearCookies();">

然后更改javascript函数 - 包括重新加载以及函数名称。似乎clear()不会产生任何结果:(

function clearCookies(){ 
  Cookies.set('consumer_name', null);
  Cookies.set('chocolate', 0);
  Cookies.set('lemon',0);
  Cookies.set('sugar',0);
  location.reload();

};

它将值重置为null和0.但它实际上不会删除cookie。您可以像这样修改 -

    function clearCookies(){ 
//      Cookies.set('consumer_name', null);
//      Cookies.set('chocolate', 0);
//      Cookies.set('lemon',0);
//      Cookies.set('sugar',0);
        delete_cookie('consumer_name');
        delete_cookie('chocolate');
        delete_cookie('lemon');
        delete_cookie('sugar');
      location.reload();
};


function delete_cookie(name) {
  document.cookie = name +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}