簡體   English   中英

javascript設置的cookie不可檢索

[英]cookies set by javascript not retrievable

我在JS中有這個腳本

function setCookie(name, value, days) {
  var d = new Date;
  d.setTime(d.getTime() + 24*60*60*1000*days);
  document.cookie = name + "=" + value + ";path=/;expires=" + d.toGMTString();
}

我可以在Chrome瀏覽器的選項->設置中看到已設置cookie名稱“ workLocation”。 Cookie的域為“ /”,“發送為”選項為“任何類型的連接”,“可訪問腳本”選項為“是”。

當我使用下面的JS代碼調用Cookie時,它返回null。

function getCookie(name) {
    var v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
    return v ? v[2] : null;
}
alert(getCookie("workLocation"));

我曾嘗試使用PHP顯示cookie var_dump($ _ COOKIE); 但只顯示codeigniter cookie“ ci_session”和“ httpUser”。 除此頁面外,我使用相同的javascript設置和獲取cookie,並且可以正常工作。 有什么想法如何解決嗎?

服務器和客戶端中的cookie不同,服務器中的cookie存儲在

本地存儲

客戶端中的cookie存儲在

餅干

如果您想從js獲取cookie,則可以使用以下功能:

function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}

function checkCookie() {
    var user = getCookie("username");
    if (user != "") {
        alert("Welcome again " + user);
    } else {
        user = prompt("Please enter your name:", "");
        if (user != "" && user != null) {
            setCookie("username", user, 365);
        }
    }
} 

但是,如果您想從php獲取cookie,尤其是CI中的會話

您可以使用此命令$this->session->userdata("key");

暫無
暫無

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

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