我正在进行练习以熟悉cookie的设置和删除。当然,我把它放在一个虚假的面包店里。
我试图遵循Hamper模型的cookie,并且能够将它们存储到控制台上。但由于某种原因,我试图通过Javascript从本地服务器删除它们的每个方法都失败了。我尝试过Cookies.expire(),Cookies.set((key,null))。get(key)等。即使我重新启动服务器,它们似乎都没有用。
为方便起见,我在下面附上了一个Github存储库。
答案 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;';
}