2012-03-30 41 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

相关问题