我使用jQuery插件来设置cookie,当我使用localhost作为域时,它不会存储cookie.
这是我使用jQuery 1.2.6的插件.
http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/
下面是我正在使用的代码.您可以看到它不喜欢localhost,我从localhost上的开发Web服务器运行它.一个细节是我正在运行4005端口,但这不应该影响域,AFAIK.
$(function() { console.log('Testing'); var one = $.cookie('Test.One'); var two = $.cookie('Test.Two'); var three = $.cookie('Test.Three'); console.log(['one', one]); console.log(['two', two]); console.log(['three', three]); $('#div1').text(one); $('#div2').text(two); $('#div3').text(three); $.cookie('Test.One', 'Test 1'); $.cookie('Test.Two', 'Test 2', { path: '/' }); $.cookie('Test.Three', 'Test 3', { path: '/', domain: 'localhost' }); });
empi.. 30
我在设置cookie方面遇到了类似的问题.组成域名并将其作为127.0.0.1添加到主机文件中.然后在该域上运行Web应用程序.
我在设置cookie方面遇到了类似的问题.组成域名并将其作为127.0.0.1添加到主机文件中.然后在该域上运行Web应用程序.
我认为cookie的域名必须有两个点(不包括TLD之后的最后一个点).所以.something.localhost
没关系,.google.com
没关系,但是.localhost
或google.com
不是.但是对RFC 2965的一瞥表明它比那更复杂......您可能想要阅读该文档,尤其是第3.3节(和/或其前身,RFC 2109).
我更新了jQuery插件,以便在它是localhost时不将域添加到cookie中.这解决了我的问题,而没有触及hosts文件.
var domain = (options.domain && options.domain !== 'localhost') ? '; domain=' + (options.domain) : '';
我正在使用Code Ignitor,并将域设置为空字符串修复了我在处理localhost上的应用程序时遇到的问题.我相信这是更好的解决方案,因为开发团队中的每个人都不需要在Windows上弄乱他们的主机文件.
在实际站点上部署时,可以将生产域值放入Code Ignitor的config.php中.
我尝试将主机文件设置为使用备用名称(local.acme.com),现在我可以在该域上设置cookie.我似乎无法在localhost上设置cookie,至少不能在Firefox上设置cookie.我不记得那是对cookies的限制.我想了解这里发生了什么.
此外,我确实尝试只在"dev"中创建hosts文件中的域,但这不起作用.我必须使用以.com或其他tld结尾的名称才能使其正常工作.