$.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:下面的语句是 写入Cookie语句。你已经在console.log之前 又执行了一遍写入
答案2:根据域名权重,当前域名的Cookie > 根域名 > 无域名
当你访问的域名是test.cg.com时,domain=test.cg.com匹配的优先级最高。
但是根据结果反馈,您访问的应该不是这个域名,所以系统只能调取到根域名的结果,
其次,根据cookie的安全性,是没有权限写入/读取 跨域cookie的
所以你最终返回了1
答案3:读取语句是(没有第二个参数)
sid1,sid2 不是得到的cookie结果,而是cookie的RAW语句,和值没有关系。
并且,是否写入成功也不一定。
总结:
由于没有权限读取、写入其它域名的cookie,所以你想操作其他域名下的cookie是不可能的。