1

选中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>

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

元素 VALOR 在 ADMINSTRC 中未定义。

请让我知道我做错了什么?干杯。

4

1 回答 1

2

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

也许使用 VAR 关键字将 adminStr 变量设置为本地范围可以解决此问题。

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

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

哦,cfcookie 通常是 cf 中处理 cookie 的方式,以防万一您不知道。

于 2014-04-27T12:35:56.347 回答