繁体   English   中英

即使存在Cookie,也找不到Cookie

[英]Cookie not found even though it exists

我有一个非常奇怪的问题,我正在寻找任何可能的想法。 我根据是否在客户端的计算机上找到了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在文档卸载时保存了。 我甚至可以进入我的cookie并找到cookie。 以下是我检查cookie的方法:

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

我真的不关心cookie的价值。 我只是检查它是否存在并显示天桥如果没有。 但是,由于某种原因,即使cookie存在,此检查也将返回-1。

额外信息

该cookie保存在我的flyover.Html页面下

server/bank/ima

查找cookie的脚本位于同一服务器上

server/bank/ima/script

使用Host: server以此Path值保存cookie

/bank/ima/

是否有任何可能导致此问题的跳出来? 有什么建议么?

我会检查两件事。 首先,你没有附加设置document.cookie,所以你删除所有以前的cookie(坏主意)。 第二,确保将cookie的域和路径设置为与读取它的页面相同的域。

还要注意您对checked属性的使用:

if($('#noThanks').prop('checked'))

http://timmywillison.com/2011/When-to-use-.attr%28%29-and-.prop%28%29.html

我在localhost和我的服务器上尝试了你的代码,它工作正常我假设你小心关闭浏览器,以便实际设置cookie。 我的猜测是你有一个路径问题,虽然从你对路径的看法来看,它肯定不明显是什么。

我将代码保存在我的服务器上,因此您至少可以检查有效的代码。

设置cookie的网址是: http//www.bridgesights.com/hondobridge/bbohondo/setcookietest.php

测试cookie的网址是: http//www.bridgesights.com/hondobridge/bbohondo/bbohondo_files/getcookietest.php

虽然这与您的问题无关,但我强烈建议使用jquery-cookie插件来操作cookie。 它非常轻巧,易于使用。 链接是: https//github.com/carhartl/jquery-cookie

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM