2016-08-01 45 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

謝謝,阿瓊。這就是訣竅! –