7

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

因此,我正在尝试寻找另一种解决方案来检查 cookie,并且正在考虑使用jQuery Cookie 插件。我想知道它是否在所有浏览器中都兼容(当然,当启用 JS 时)?

4

3 回答 3

10

感谢 Shawn 为您解答,但不幸的是,由于浏览器并不总是发送引荐来源网址,因此每次都无法使用它不够可靠。因为如果没有设置,那么你就会陷入循环。

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

最后,我在 IE 6、7 和 8、Safari 4、Google 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% 的情况。否则,它会失败,只是不允许他们做任何事情。

于 2010-01-09T00:03:47.547 回答
1

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

于 2010-01-08T18:26:54.170 回答
1

我喜欢这个 1 线性函数:

function cookiesEnabled() {
    return $.cookie('check', 'valid', { expires: 1 }) && $.cookie('check') == 'valid';
}
于 2014-07-29T19:54:13.443 回答