相关疑难解决方法(0)

带有显式域的localhost上的Cookie

我一定错过了一些关于cookie的基本知识.在本地主机上,当我设置在服务器端的cookie,明确指定域为localhost(或.localhost).某些浏览器似乎没有接受cookie.

Firefox 3.5:我在Firebug中检查了HTTP请求.我看到的是:

Set-Cookie:
    name=value;
    domain=localhost;
    expires=Thu, 16-Jul-2009 21:25:05 GMT;
    path=/
Run Code Online (Sandbox Code Playgroud)

或者(当我将域设置为.localhost时):

Set-Cookie:
    name=value;
    domain=.localhost;
    expires=Thu, 16-Jul-2009 21:25:05 GMT;
    path=/
Run Code Online (Sandbox Code Playgroud)

在任何一种情况下,都不会存储cookie.

IE8:我没有使用任何额外的工具,但cookie似乎也没有存储,因为它不会在后续请求中发回.

Opera 9.64: localhost和.localhost都工作,但是当我检查Preferences中的cookie列表时,域名设置为localhost.local,即使它列在localhost下(在列表分组中).

Safari 4: localhost和.localhost都可以工作,但它们在Preferences中始终列为.localhost.另一方面,没有显式域的cookie,它显示为localhost(无点).

localhost有什么问题?由于存在这么多的不一致,必须有一些涉及localhost的特殊规则.另外,我不完全清楚为什么域名必须以点为前缀?RFC 2109明确声明:

Domain属性的值不包含嵌入点或不以点开头.

为什么?该文件表明它必须对安全做些什么.我不得不承认我没有阅读整个规范(稍后可能会这样做),但听起来有点奇怪.基于此,在localhost上设置cookie是不可能的.

cookies setcookie

169
推荐指数
7
解决办法
19万
查看次数

标签 统计

cookies ×1

setcookie ×1