簡體   English   中英

JS Cookie在2個地方設置,不會覆蓋第一個設置

[英]JS Cookie set in 2 places, doesn't overwrite first set

我在2個不同的頁面上使用相同的腳本來設置相同的cookie。 我的假設是,即使兩個頁面(略有不同)路徑,它們也將簡單地覆蓋cookie,而不是將條目復制到其中。

我的第一頁路徑是:

example.com/classifieds/businesses

我第二頁的路徑是:

example.com/classifieds/businesses/search

因此,我的問題是,cookie是否與頁面相關? 是否可以強迫他們覆蓋現有值,而不是將其特定於頁面的值寫入cookie?

這是我的cookie與重復項的樣子:

domain=.example.com; path=/; bdView=column; bdView=detail; domain=.example.com;

設置域的代碼(位於頭文件中)

var domain = window.location.host.split(/\.(.+)/)[1];
document.cookie = "domain=." + domain;
document.cookie = "path=/";

設置bdView的代碼(在兩個頁面中都包含的單獨的js文件中)

function setCookie(view) {
    switch (view) {
        case "column":
            document.cookie = "bdView=column";
            break;
        case "list":
            document.cookie = "bdView=list";
            break;
        case "detail":
            document.cookie = "bdView=detail";
            break;
    }
}

因此,我只是在使用Cookie錯誤。 我以為域和路徑只是他們自己的東西,但是實際上您應該使用要設置的東西來設置它們。

因此,它應該看起來像這樣:

function setCookie(view) {
    var domain = window.location.host.split(/\.(.+)/)[1];
    switch (view) {
        case "column":
            document.cookie = "bdView=column; path=/; domain=" + domain;
            break;
        case "list":
            document.cookie = "bdView=list; path=/; domain=" + domain;
            break;
        case "detail":
            document.cookie = "bdView=detail; path=/; domain=" + domain;
            break;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM