我使用jQuery cookie插件来存储cookie,使用以下代码我可以保存一个cookie 7天,但它只保存在创建的页面上。我希望整个网站都能使用cookie。
$.cookie('basket',basket,{ expires: 7 });
我试着设定一条路径,但似乎不起作用
$.cookie('basket',basket,{ expires: 7, path:'/' });
完整代码:这很好,但它只保存当前页面的cookie
function add_to_basket(id,title){
if($.cookie('basket')){
basket=$.cookie('basket');
var basket_array = basket.split(',');
var index = jQuery.inArray(id,basket_array);
if(index > -1){
return false;
}else{
basket+=','+id;
$.cookie('basket',basket,{ expires: 7 });
}
}else{
basket=id;
console.log(basket);
$.cookie('basket',basket,{ expires: 7 });
}
我刚刚遇到了同样的问题。我通过在编写cookie时始终指定路径来修复它。
$.cookie('basket', value, { path: '/' })
这是jquery cookie插件的一个问题。它将默认为当前页面的路径。
在插件文件中更改:
config.defaults = {};
至
config.defaults = {path:'/'};
来自https://github.com/carhartl/jquery-cookie/issues/2#issuecomment-790288
我遇到了同样的问题,但我发现只有当我缩小jquery.cookie.js
和放入时才会出现这种情况
config.defaults = {expires: 180, path:'/', domain: '.domain.com' };
它将cookie路径设置为"/",无论加载什么内部页面,例如yourdomain.com/en/page1/page
-cookie路径='/'
我不认为修补插件的主体是个好主意。遗憾的是,插件无法配置。。我使用包装器函数:
$.cookie2 = function(key, value, options)
{
if (typeof value!='undefined')
{ // setting cookie
var defaults = {expires: 180, path:'/'};
$.extend(defaults, options || {});
return $.cookie(key, value, defaults);
}
// getting cookie
return $.cookie(key, value, options);
}
用法:
// set with defaults defined in wrapper
$.cookie2('name', 'value');
// rewrite defaults or add something
$.cookie2('name', 'value', {expires: 1, something: 'else'});
使用此
$.cookie('basket', value, { path: '/' });