ColdFusion 10 Cookie问题:无法设置Cookie

时间:2014-04-27 11:53:05

标签: coldfusion coldfusion-10 cfml cfcookie

我在检查rememberme按钮时有以下功能来设置管理员cookie:

<!--- setRememberMeCookie() Method --->
<CFFUNCTION NAME="setRememberMeCookie" ACCESS="REMOTE" RETURNTYPE="BOOLEAN" DISPLAYNAME="setRememberMeCookie" HINT="Saves user login details to cookie">
    <CFARGUMENT NAME="Usuario" TYPE="STRUCT" REQUIRED="YES">
    <!--- Save the struct to a cookie --->    
    <CFSCRIPT>
    adminStrc = Arguments.Usuario;
    getPageContext().getResponse().addHeader("Set-Cookie", "name=#adminStrc.Nombre#; value=#adminStrc.Valor#; SECURE=yes; Max-Age=31622400; DOMAIN=eMercado.com; path=/Cookies; httponly=true" );
    </CFSCRIPT>
    <CFRETURN true>    
</CFFUNCTION>

我正在尝试使用以下代码测试此函数:

<CFSCRIPT>
usuarioCookie = "#application.UsuarioCookie#"; //My Cookies Component

adminCookie = structNew();
adminCookie.Nombre = "Admin_Clave";
adminCookie.Valor  = "2E372208-446D-57A5-07199C09B88DA458";

//To test the Cookie function
testCookie = usuarioCookie.setRememberMeCookie(adminCookie);
</CFSCRIPT>

<p><CFDUMP VAR="#testCookie#"> </p>

当我运行代码时,收到以下错误:

  

在ADMINSTRC中未定义元素VALOR。

请告诉我我做错了什么? 欢呼声。

1 个答案:

答案 0 :(得分:2)

刚刚在这里采取了一个尝试,但应用程序范围是共享内存,在您的函数中,您并没有明确地将adminStr的范围限制为本地。

或许使用VAR关键字将adminStr变量混淆到本地范围将解决此问题。

当然,也可能发生的事情是您在应用程序范围内拥有代码的缓存旧副本。因此,您实际上并没有运行您认为的代码。

最好在缓存之前测试变量范围内的组件。

ohh和cfcookie通常是在cf中处理cookie的方式,以防万一你不知道。