为什么java和javascript中无法获取cookie除name和value以外的数据?
PHP中文网
PHP中文网 2017-04-11 12:25:15
[JavaScript讨论组]

无论是在js中使用document.cookie,还是在servlet中使用cookie,为什么只能获取namevalue的值,其他的值获取不到?

js代码如下:

console.log(document.cookie);
var date = new Date();
date.setSeconds(date.getMinutes() + 30);
document.cookie = "falcult=software; expires=" + date.toGMTString() + ";path=/; " + document.cookie;

java代码如下:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Cookie[] cookies = request.getCookies();
        if(cookies != null){
            for (Cookie cookie : cookies) {
                System.out.print(cookie.getName() + ",");
                System.out.print(cookie.getValue() + ", ");
                System.out.print(cookie.getPath() + ", ");
                System.out.print(cookie.getDomain() + ", ");
                System.out.print(cookie.getMaxAge() + ", ");
                System.out.println();
            }
        }
        Cookie cookie1 = new Cookie("name", "DX");
        cookie1.setMaxAge(1000*60);
        cookie1.setPath("/");
        Cookie cookie2 = new Cookie("age", "20");
        response.addCookie(cookie1);
        response.addCookie(cookie2);
        request.getRequestDispatcher("test.html").forward(request, response);
    }

js输出结果:

school=cqupt; age=20; name=DX

java输出结果:

age,20, null, null, -1, 
school,cqupt, null, null, -1, 
name,DX, null, null, -1, 
PHP中文网
PHP中文网

认证0级讲师

全部回复(2)
怪我咯

server端只能获取到name和value不难解释,因为发请求的时候,cookie就只有name和value传递过去了。你可以看看请求的数据。
js也只能得到这两个值应该是浏览器只给js传递这两个值或什么标准要求只能传递这两个值吧,cookie存储在本地是以未见的形式,我查看了Cookie文件,并不是文本文件,是二进制文件,js是无法读取的。

阿神

ArrayBuffer 可以读二进制内容

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号