无法读取cookie javascript

时间:2013-04-04 11:13:44

标签: java javascript cookies response

我正在设置cookie服务器端,使用java代码

response.addCookie("test1","test1");

我发现此代码使用javascript检索cookie

(function(){
    var cookies;

    function readCookie(name,c,C,i){
        if(cookies){ alert("all cookies"+cookies); return cookies[name]; }

        c = document.cookie.split('; ');
        cookies = {};

        for(i=c.length-1; i>=0; i--){
           C = c[i].split('=');
           cookies[C[0]] = C[1];
        }
        alert("required cookie"+cookies[name]);
        return cookies[name];
    }

    window.readCookie = readCookie; // or expose it however you want
})();

我将此功能称为

alert(readCookie('test1'));

但每次我都收到未定义的警报.. 我检查了chrome的cookie文件,我的cookie设置为

localhosttest1test1/service/login

有人可以解释为什么我会收到此错误?

2 个答案:

答案 0 :(得分:1)

代码似乎有用(我在Firefox,Chrome和MSIE中测试它,通过使用JavaScript创建一些cookie,例如document.cookie = "test1=bla",并显示“required cookiebla”)。也许您从服务器设置的cookie被标记为HttpOnly,因此JavaScript无法访问它?

答案 1 :(得分:1)

当我提交一个到不同路径的链接时,我遇到了类似的问题。即,我点击链接的页面是/pathOne/somePlace,但链接转到了/pathTwo/someOtherPlace。编写的cookie仅在/pathTwo/*上有效。为了纠正这个问题,我做了:

Cookie testCookie = new Cookie("test1","test1");
testCookie.setPath (request.getContextPath ());
response.addCookie (testCookie);
希望有所帮助。