javascript - 关于$.cookie几个问题,希望能够得到大家的帮助,谢谢大家!
怪我咯
怪我咯 2017-04-11 12:40:01
[JavaScript讨论组]
    $.cookie('sid', "1", {path: '/', domain: "cg.com"});// 根域名
    $.cookie('sid', "2", {path: '/', domain: "test.cg.com"});//子域名
    $.cookie('sid', "3", {path: '/'});//默认domain, 官方文档:Default: domain of page where the cookie was created.


    $.removeCookie('sid', {path: '/', domain: "cg.com"});
    $.removeCookie('sid', {path: '/', domain: "test.cg.com"});
    $.removeCookie('sid', {path: '/'});

    sid1 = $.cookie('sid', {path: '/', domain: "cg.com"});
    sid2 = $.cookie('sid', {path: '/', domain: "test.cg.com"});
    sid3 = $.cookie('sid', {path: '/'});

    sid = $.cookie('sid');

    console.log(document.cookie); //=>   sid=1; sid=2; sid=3  问题1
    console.log(sid); //=> 1 问题2
    console.log(sid1); //=> sid=%5Bobject%20Object%5D 问题3
    console.log(sid2); //=> sid=%5Bobject%20Object%5D
    console.log(sid3); //sid=%5Bobject%20Object%5D
问题1:为什么cookie还存在,前面不是已经删除了吗
问题2:为什么是1而不是2或者3
问题3:为什么是"sid=1; path=/; domain=cg.com"字符串,而不是value值,我该如何得到value值?
怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(1)
高洛峰

答案1:下面的语句是 写入Cookie语句。你已经在console.log之前 又执行了一遍写入

$.cookie('sid', "1", {path: '/', domain: "cg.com"});

答案2:根据域名权重,当前域名的Cookie > 根域名 > 无域名

  • 当你访问的域名是test.cg.com时,domain=test.cg.com匹配的优先级最高。

  • 但是根据结果反馈,您访问的应该不是这个域名,所以系统只能调取到根域名的结果,

  • 其次,根据cookie的安全性,是没有权限写入/读取 跨域cookie的

  • 所以你最终返回了1

答案3:读取语句是(没有第二个参数)

    $.cookie('name');

sid1,sid2 不是得到的cookie结果,而是cookie的RAW语句,和值没有关系。
并且,是否写入成功也不一定。

总结:
由于没有权限读取、写入其它域名的cookie,所以你想操作其他域名下的cookie是不可能的。

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

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