document.cookie无法正常工作

时间:2011-02-27 13:02:59

标签: javascript cookies

我正在尝试在javascript中使用document.cookie进行警报(出于实验目的)。最初,它显示了cookie的罚款,突然显示“style_cookie = null”。

我在phpbb3中这样做。我正在尝试在其中添加自定义页面,我正在构建它。所以cookie setter是phpbb3。

我不确定这里出了什么问题?它与cookie超时或cookie过期有关吗?我很困惑,一些帮助将不胜感激。

代码如下所示,

alert(document.cookie);

谢谢, 阿比

4 个答案:

答案 0 :(得分:6)

我得到了这个功能,对于Android 2.2,javascript的document.cookie工作正常,只需确保在你的Webview中... javascript启用如下:

yourWebViewVariable.getSettings().setJavaScriptEnabled(true);

for Android 3.1只需将其添加到您的java文件onLoadInit:

CookieManager.setAcceptFileSchemeCookies(true); //这是专门使其工作的行,因此其他行是可选的

CookieManager cookieManager = CookieManager.getInstance(); cookieManager.setAcceptCookie(true); cookieManager.acceptCookie();

此外,这里有一些我在尝试解决此错误时发现的链接,这对于想要将变量从Javascript发送到Webview(原生Android语言)的其他人有帮助,反之亦然。

http://android-er.blogspot.com/2011/10/run-android-java-code-from-webpage.html

http://android-er.blogspot.com/2011/10/call-javascript-inside-webview-from.html

谢谢,Goodluck!

答案 1 :(得分:1)

这可能是由几件事引起的:

  • cookie过期(如果您未设置过期,则cookie是每个会话)
  • http only - 您可以告诉浏览器不要发送cookie值
  • Cookie范围 - Cookie仅对某些子域或subURL有效

请注意,如果要列出所有Cookie,可以使用其他工具。例如,在Firefox中,您可以右键单击 - >查看页面信息 - >安全 - >查看Cookies。

答案 2 :(得分:0)

您是通过http测试脚本还是只调用HTML文件? cookie通过http发送,所以你必须在web服务器内调用它(http://localhost/test_cookie.html)

答案 3 :(得分:-1)

以下两个函数可以安全地用于设置或获取cookie并进行测试


function setCookie(c_name, value, exdays)
{
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
    document.cookie = c_name + "=" + c_value;
}
function getCookie(c_name)
{
    var i, x, y, ARRcookies = document.cookie.split(";");
    for (i = 0; i < ARRcookies.length; i++)
    {
        x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
        y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
        x = x.replace(/^\s+|\s+$/g, "");
        if (x == c_name)
        {
            return unescape(y);
        }
    }
}

有关详情,请访问W3Schools

中的此页面