2011-08-12 50 views
0

我有一个网站的问题,我运行时,当禁用cookies完全用户无法通过预订过程继续。Jquery Cookie Plugin返回[对象对象]

我使用Jquery和cookie插件,当cookie被禁用时,cookie似乎总是返回[object Object]。 代码进行这样的检查:

alert($.cookie("sourceID")); //returns [object Object] 
if($.cookie("sourceID") === null || $.cookie("sourceID")=== '[object Object]'){ 
sourceID = 27201; 
}else{ 
sourceID = $.cookie("sourceID"); 
} 
alert(sourceID); //returns [object Object] 

上述正试图设置一个默认的sourceID如果用户没有启用Cookie。然后将其与其他信息一起传递给构建XML的另一个函数,并将其传递给服务器进行处理;然而由于[对象对象]问题,当它通过时,服务器无法找到匹配的sourceid。

+0

没有“jQuery cookie插件”的意思......你的意思是https://github.com/carhartl/jquery-cookie? – JAAulde

+0

是的,那是一个;然而根据http://plugins.jquery.com/project/Cookie它是一个插件 – Arazmus

+0

我知道它是_a_插件,我说没有像jQuery cookie插件这样的东西。也就是说,唯一让它成为插件的就是它驻留在jQuery的名字空间之下 - 没有理由。它既不提供类似于jQuery的功能,也不使用任何jQuery功能。很奇怪。 – JAAulde

回答

0

我找到了解决此问题的解决方法,因为我试图从cookie中检索整数值,可以检查返回的cookie的值是否为数字。要做到这一点,我使用的回答了这个问题:Validate decimal numbers in JavaScript - IsNumeric()和使用:

if(isNumeric($.cookie("sourceID"))){ 
sourceid = $.cookie("sourceID"); 
}else{ 
sourceid = 27201; 
} 

不是最好的方式来检查该cookie返回一个有效的值,但我会建议任何人都打在未来这个问题来验证针对他们所知道的cookie应该包含的内容(int,特定的字符串等)