Cookieの保存にはjQuery Cookieプラグインを使用し、次のコードではCookieを7日間保存できますが、作成されたページに対してのみ保存します。 CookieをWebサイト全体で使用できるようにします。
$.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 });
}
私は同じ問題を抱えていました。 alwaysでCookieの書き込み時にパスを指定することで修正しました。
$.cookie('basket', value, { path: '/' })
これはjquery cookieプラグインの問題です。デフォルトでは現在のページのパスになります。
プラグインファイルの変更:
config.defaults = {};
に
config.defaults = {path:'/'};
from 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'});