假设我有localhost和localhost2都指向127.0.0.1
在//localhost/test/test.cfm( \ wwwroot \ test \ test.cfm)
<cfset session.name="HAHA">
<cfcookie domain=".localhost2" name="CFID" value="#session.cfid#">
<cfcookie domain=".localhost2" name="CFTOKEN" value="#session.cftoken#">
<cflocation url="//localhost2/test/test2.cfm" addtoken="false">
在//localhost2/test/test2.cfm(u wwwroot \ test \ test2.cfm)
<cfdump var="#session#">
我希望//localhost2/test/test2.cfm显示session.name =“HAHA”,但它会生成一个新会话,为什么?是因为我无法从localhost设置.localhost2 cookie吗?
谢谢!
答案 0 :(得分:3)
会话可以跨域,但 Cookie 不能。 (正如您所发现的,子域名有点不同。)出于安全原因,abc.com无法访问xyz.com的cookie。但是,CF本身并不关心您正在使用的域名。
因此,如果你有一个不的链接传递了URL中的cfid和cftoken,那么会话就会丢失。但是,如果您在链接中(或在cflocation等中)传递了id和令牌,则会话仍然有效。