[英]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.