[英]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.