使用jQuery Cookie插件是一种有效的测试方法,看看是否启用了cookie?

我有一个网站,我们要求用户在登录网站之前启用JavaScript和Cookie。 (JS部分完成并完美运行。)目前,我们一直在设置cookie,然后将用户重定向到另一个页面(在PHP中)。 这已经很好了,但是现在我们有很多人为我们重定向的页面添加了书签,当然没有设置cookie,因此不允许他们登录。

所以我试图找到另一个检查cookie的解决方案,我正在考虑使用jQuery Cookie插件 。 我想知道它是否兼容所有浏览器(当然,当JS启用时)?

Thxs Shawn为您的答案 ,但不幸的是因为浏览器并不总是发送引用者,它不够可靠,不能每次都使用它。 因为如果没有设置,那么你最终会陷入循环。

我想到的另一个解决方案是重定向到一个完全独立的页面,该页面本身会检查是否启用了cookie(通过重定向到自身)。 如果启用了cookie,它将重定向回原始页面。 如果不是,则会重定向到有关问题的页面。 我认为这应该有效,但我不确定。

最后,我在IE 6,7和8,Safari 4,谷歌Chrome 4,Firefox 3.5,Opera 10.2以及一些不同的配置上尝试了jQuery Cooke插件,并且它在所有这些配置中都有效。 这是我正在使用的代码:

$.cookie('test_cookie', 'cookie_value', { path: '/' }); if ($.cookie('test_cookie') == 'cookie_value') { // cookie worked, set/enable appropriate things } 

它并不完美,但我认为它将在95%的情况下起作用。 否则,它将失败,只是不允许他们做任何事情。

您可以检查页面的引荐来源,如果它不是您的主页,您可以在那里重定向它们。 如果推荐人是您的主页并且没有设置cookie,您将知道他们没有启用cookie。

我喜欢这个1class轮function:

 function cookiesEnabled() { return $.cookie('check', 'valid', { expires: 1 }) && $.cookie('check') == 'valid'; }