弑天下
一种透明,干净且简单的方法,使用PHP检查cookie的可用性,并利用AJAX透明重定向的优势,因此不会触发页面重新加载。它也不需要会话。客户端代码(JavaScript)function showCookiesMessage(cookiesEnabled) { if (cookiesEnabled == 'true') alert('Cookies enabled'); else alert('Cookies disabled');}$(document).ready(function() { var jqxhr = $.get('/cookiesEnabled.php'); jqxhr.done(showCookiesMessage);});(可以将JQuery AJAX调用替换为纯JavaScript AJAX调用)服务器端代码(PHP)if (isset($_COOKIE['cookieCheck'])) { echo 'true';} else { if (isset($_GET['reload'])) { echo 'false'; } else { setcookie('cookieCheck', '1', time() + 60); header('Location: ' . $_SERVER['PHP_SELF'] . '?reload'); exit(); }}第一次调用脚本时,将设置cookie,并且脚本告诉浏览器重定向到其自身。浏览器将透明地执行此操作。没有页面重新加载发生,因为它是在AJAX调用范围内完成的。第二次,当通过重定向调用时,如果收到cookie,则脚本将响应HTTP 200(带有字符串“ true”),因此将showCookiesMessage调用该函数。如果第二次调用脚本(由“ reload”参数标识)并且未接收到cookie,则它将使用字符串“ false”响应HTTP 200-并且showCookiesMessage将调用该函数。