2012-03-30 73 views
0

我遇到了一個非常奇怪的問題,我正在尋找任何可能的想法。我有一個天橋,根據是否在客戶機上找到cookie來加載。在天橋有一個'不用謝謝'複選框,說「不要再顯示」。我檢查,看它是否已在天橋頁面被檢查這樣的:即使存在,仍未找到Cookie

$(document).ready(function() { 
jQuery(window).bind("beforeunload", function(){ setCookieFO('noShowMerkleCpn','true',180);  }); 
}); 

function setCookieFO(c_name,value,exdays){ 
if($('#noThanks').attr('checked')){ 
var exdate=new Date(); 
exdate.setDate(exdate.getDate() + exdays); 
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); 
document.cookie=c_name + "=" + c_value; 
}else{ 
} 
} 

我已經跑在Firebug的代碼,並驗證了Cookie會保存在文件卸載。我甚至可以進入我的cookies並找到cookie。這裏是我如何檢查cookie:

function runFancyBox(){ 
var idx = document.cookie.indexOf('noShowMerkleCpn'); 
if(idx < 0){ 
$('#cpnForm').click(); 
}else{ 
} 
} 

我真的不關心cookie的價值。我只是檢查它是否存在,如果沒有,就顯示天橋。但是,由於某些原因,即使cookie存在,該檢查也會返回-1。

額外的信息

該Cookie下

server/bank/ima 

,看起來Cookie的腳本是在同一臺服務器

server/bank/ima/script 

對保存在我的flyover.Html頁Cookie與主機的此路徑值一起保存:server

/bank/ima/ 

是否有任何可能導致此問題的跳出?有什麼建議麼?

+0

當您閱讀document.cookie時,您是否確認cookie實際存在? – jbabey 2012-03-30 15:17:11

+0

從某種意義上說。我在支票上設置了一個斷點並查看了我的cookie並通過這種方式進行了驗證。儘管'document.cookie'仍然無法找到cookie。 – Rondel 2012-03-30 15:26:36

+0

document.cookie返回一個字符串,是你的cookie位於該字符串還是不是? – jbabey 2012-03-30 15:31:43

回答

1

我想你的兩個本地主機和我的服務器代碼,並能正常工作我想你小心關閉瀏覽器,以便實際設置Cookie。我的猜測是你有一個路徑問題,但從你對路徑的看法來看,它肯定不是那麼明顯。

我將代碼保存在我的服務器上,因此您至少可以檢查有效的代碼。

的URL設置Cookie是:http://www.bridgesights.com/hondobridge/bbohondo/setcookietest.php

測試cookie中的網址是:http://www.bridgesights.com/hondobridge/bbohondo/bbohondo_files/getcookietest.php

雖然這無關你的問題,我強烈建議jQuery的cookie的插件操縱餅乾。它非常輕巧,易於使用。鏈接是:https://github.com/carhartl/jquery-cookie

+0

這是一個路徑問題。爲@jbabey設置cookie的路徑建議解決問題。 – Rondel 2012-03-31 03:17:17

相關問題