2016-08-01 38 views
0

我的HTML页面包含一个跨度(文本),其onClick = "goDropShip();"无法检索JavaScript的cookie之前重定向

页包含包含脚本:

function goDropShip() { 

    var date = new Date(); 
    date.setTime(date.getTime()+(24*60*60*1000)); 
    document.cookie = "dropShip=true; expires="+date.toGMTString(); 
    window.location.href="http://www.domain.com"; 

} 

我已经验证,以“alert() “,该功能实际上正在执行。丢弃后立即测试cookie是成功的。但是,在重定向之后,cookie似乎是空的。

www.domain.com的index.html的(其接收该重定向)具有如下的脚本:

if (document.cookie.indexOf("dropShip=true") >= 0 ) { 
    window.location = "http://www.domain.com/processDropShip"; 
} 

然而,饼干似乎是重定向后完全空白。

我想.indexOf()只是因为尝试专门检索cookie的名称也失败了,所以我试图找到整个document.cookie文本中的cookie。

我可能只是没有正确使用cookie,或者我不知道如何。

请原谅“dropShip”在这种情况下似乎没有意义,但出于安全原因,我不得不混淆细节。但我唯一改变的是cookie名称。

一如既往,感谢您的帮助。

+1

Cookie是域特定的。这是同一个域名吗? – PHPglue

+0

如果您设置cookie的域名不是“http:// www.domain.com”(www与http或https的域名不同,必须是相同的子域名等),那么您将不会能够读取另一边的cookie。但是,如果您使用的是同一个域,那么您应该确保您也指定了Cookie存在的路径。例如''路径= /' – Ultimater

+0

Ultimater,你能举出一个代码路径的例子吗?谢谢 –

回答

0

如果您将cookie设置为和重定向到的域相同,则只需在添加cookie时将路径设置为/,以便在整个域中都可以访问该cookie。

document.cookie = "dropShip=true; path=/; expires="+date.toGMTString();

+1

谢谢,阿琼。这就是诀窍! –