cookies的作用域
Posted on: 2013-11-22, Last modified: 2015-07-31, View: 2276
Posted on: 2013-11-22, Last modified: 2015-07-31, View: 2276
在做一个菜单项的高亮的功能时,通过cookie记录当前所在的菜单,结果当前的选中项总是错乱的,弄了半天以为是javascript有问题,完全忽略了cookie的作用域问题,怎么都是错乱的。正常情况下,cookie会依据当前的应用,也就是路径生成对应的对象,不同的应用是独立的。比如http://20365.cn/test 和http://20365.cn/test2 会产生两个不同的cookie对象,即使key一样也可以。
那么如何区分这样的情况呢:
1. 比如要想记录一个整个站点一致的数值,只要设置cookie的path即可:
document.cookoe.setPath('/') ; //js $.cookie('name', 'value', {path:"/"}) //jquery
path的默认值是当前应用,例如你现在的url是http://20365.cn/test, 那path = /test.
另外在jquery中直接使用$.cookie('name')就可以,有些版本会存在缺陷要加上路径名称 $.cookie('name', {path:"/"})才能读到值。
2. 如果要跨域调用,则还要加上域信息, 设置cookie.setDomain(".jszx.com");
这个参数必须以"."开始。