wake-up-neo.net

jQuery Cookie Pfad

Ich verwende das jQuery-Cookie-Plugin zum Speichern von Cookies. Mit dem folgenden Code kann ich ein Cookie für 7 Tage speichern, es wird jedoch nur für die Seite gespeichert, auf der es erstellt wurde. Ich möchte, dass der Cookie für die gesamte Website verfügbar ist.

$.cookie('basket',basket,{ expires: 7 });

Ich habe versucht, einen Pfad festzulegen, aber das schien nicht zu funktionieren

$.cookie('basket',basket,{ expires: 7, path:'/' });

vollständiger Code: Dies funktioniert gut, speichert jedoch nur den Cookie für die aktuelle Seite

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 });

}
30
waterschaats

Ich hatte gerade das gleiche Problem. Ich habe es mit immer festgelegt und den Pfad beim Schreiben des Cookies angegeben.

$.cookie('basket', value, { path: '/' })

Dies ist ein Problem mit dem Jquery-Cookie-Plugin. Der Pfad der aktuellen Seite wird standardmäßig übernommen.

48
Tim Santeford

In der Plugin-Datei ändern:

config.defaults = {};

zu

config.defaults = {path:'/'};

von https://github.com/carhartl/jquery-cookie/issues/2#issuecomment-790288

13
bitlove

Ich hatte das gleiche Problem, aber ich fand heraus, dass dies nur vorkommt, wenn ich den jquery.cookie.js abmische und wenn ich es einstelle

config.defaults = {expires: 180, path:'/', domain: '.domain.com' };

es setzt den Cookie-Pfad auf '/', unabhängig davon, welche interne Seite geladen wird, z. B. yourdomain.com/en/page1/page - cookie-pfad = '/'

1

Ich denke nicht, dass das Patchen des Plugins eine nette Idee ist. Leider ist das Plugin nicht konfigurierbar. Ich verwende die Wrapper-Funktion:

$.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);
}

Verwendungszweck:

// set with defaults defined in wrapper
$.cookie2('name', 'value');

// rewrite defaults or add something
$.cookie2('name', 'value', {expires: 1, something: 'else'}); 
0
zzmaster