如何在服务器端(服务器端)检测浏览器中的cookie是否被禁用?有可能吗?
详细说明:我正在服务器上处理一个请求。我想通过Set-Cookie
头设置一个cookie。我需要知道此时cookie是由客户端浏览器设置的,还是我设置cookie的请求将被忽略。
发布于 2009-02-10 07:54:09
发送设置了cookie的重定向响应;在处理cookie的(特殊)重定向URL测试时-如果存在,则重定向到正常处理,否则重定向到错误状态。
请注意,这只能告诉您浏览器允许设置cookie,而不是设置多长时间。我的FF允许我强制所有的cookies到“会话”模式,除非站点被特别添加到一个例外列表中-当FF关闭时,这样的cookies将被丢弃,而不管服务器指定的过期时间。这就是我总是运行FF的模式。
发布于 2009-02-10 08:11:28
您可以使用Javascript来完成此任务
库:
function createCookie(name, value, days) {
var expires;
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toGMTString();
}
else expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name, "", -1);
}
function areCookiesEnabled() {
var r = false;
createCookie("testing", "Hello", 1);
if (readCookie("testing") != null) {
r = true;
eraseCookie("testing");
}
return r;
}
要运行的代码:
alert(areCookiesEnabled());
记住
这只有在Javascript被启用的情况下才能起作用!
发布于 2009-02-10 07:56:36
我不认为有直接的方法来检查。最好的方法是在cookie中存储一个值,并尝试读取它们,然后决定是否启用cookie。
https://stackoverflow.com/questions/531393
复制相似问题