首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何检测服务器端是否关闭了cookie

如何检测服务器端是否关闭了cookie
EN

Stack Overflow用户
提问于 2009-02-10 15:49:51
回答 15查看 91K关注 0票数 95

如何在服务器端(服务器端)检测浏览器中的cookie是否被禁用?有可能吗?

详细说明:我正在服务器上处理一个请求。我想通过Set-Cookie头设置一个cookie。我需要知道此时cookie是由客户端浏览器设置的,还是我设置cookie的请求将被忽略。

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2009-02-10 07:54:09

发送设置了cookie的重定向响应;在处理cookie的(特殊)重定向URL测试时-如果存在,则重定向到正常处理,否则重定向到错误状态。

请注意,这只能告诉您浏览器允许设置cookie,而不是设置多长时间。我的FF允许我强制所有的cookies到“会话”模式,除非站点被特别添加到一个例外列表中-当FF关闭时,这样的cookies将被丢弃,而不管服务器指定的过期时间。这就是我总是运行FF的模式。

票数 61
EN

Stack Overflow用户

发布于 2009-02-10 08:11:28

您可以使用Javascript来完成此任务

库:

代码语言: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;
}

要运行的代码:

代码语言:javascript
复制
alert(areCookiesEnabled());

记住

这只有在Javascript被启用的情况下才能起作用!

票数 42
EN

Stack Overflow用户

发布于 2009-02-10 07:56:36

我不认为有直接的方法来检查。最好的方法是在cookie中存储一个值,并尝试读取它们,然后决定是否启用cookie。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/531393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档