我正在尝试从Cookie中获取一些数据。我用CodeIgniter设置了cookie,这是我的代码
$c = array('name' => 'total', 'value' => $total, 'path' => '/');
$this->input->set_cookie($c);
然后,我想使用javascript采集数据。这就是我尝试过的
function getCookie(c_name) {
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0; i<ARRcookies.length; i++) {
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
if (x==c_name) {
return unescape(y);
}
}
}
console.log(getCookie('total'))
我从here获得了该函数,但对我的代码不起作用。反正有实现此目标的方法吗?
答案 0 :(得分:1)
您的JavaScript代码没有任何问题。可能是因为尚未设置Cookie而发生的。您只需将expire
值添加到cookie中,将其设置为任何数字(以秒为单位),或将0
设置为立即禁用。
$c = array('name' => 'total', 'value' => $total, 'path' => '/', 'expire' => 0);
$this->input->set_cookie($c);
答案 1 :(得分:0)
要读取Cookie,您可以使用此
function readCookie(name) {
let nameEQ = encodeURIComponent(name) + '=';
let ca = document.cookie.split(';');
for (let i = 0; i < ca.length; i++) {
let c = ca[i];
while (c.charAt(0) === ' ')
c = c.substring(1, c.length);
if (c.indexOf(nameEQ) === 0)
return decodeURIComponent(c.substring(nameEQ.length, c.length));
}
return null;
}
readCookie('total');
这已多次为我工作,希望它也为您工作。