Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法读取cookie javascript_Java_Javascript_Cookies_Response - Fatal编程技术网

无法读取cookie javascript

无法读取cookie javascript,java,javascript,cookies,response,Java,Javascript,Cookies,Response,我正在使用java代码在服务器端设置cookie 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 = doc

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

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

有人能解释一下为什么我会出现这个错误吗?

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

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

Cookie testCookie = new Cookie("test1","test1");
testCookie.setPath (request.getContextPath ());
response.addCookie (testCookie);

希望有帮助。

您是否收到从
readCookie
调用的警报?它们显示了什么?警告(“所有cookies”+cookies);-将警报内容显示为[对象][对象]警报(“必需的cookie”+cookies[名称]);-除了我显示的字符串消息外,什么都不显示。我如何更正该消息。。在问题的开头,我已经说明了如何设置cookie在尝试进一步查看之前,您是否可以尝试一个警报(document.cookie)来显示所有文档cookie,并查看您的cookie是否存在?但此警报,即警报(“所有cookie”+cookie);在read cookie函数中,将[object][object]显示为输出,这意味着它没有真正读取某些内容,因为
cookies
是一个数组,将其转换为字符串以在警报中显示(独立于它是否为空)将显示
[object]
。好的,那么浏览器cookie数组是空的。现在,测试问题是否来自HTTP cookie,在调用函数之前使用JavaScript在本地创建一个,即使用
document.cookie=“test1=somestring”
并查看函数是否显示“somestring”。两者都未定义。。警报(window.cookie);和警报(readCookie('test1'));