Grails RemoteLink和Cookie

时间:2012-07-23 12:49:56

标签: ajax grails cookies

您好(抱歉我的英语不好),

我有一个看似简单的问题: 我想使用remoteLink来设置cookie并使用cookie值作为响应。 它效率不高,因为我必须在链接上单击两次才能获得正确的行为。 我怀疑它是因为cookie值是在模板调用后发送的。

这是我的gsp:

${agence.delegation}
<small>
    <g:if test="${cookie(name:'delegationId') == agence.id.toString()}">
        <g:remoteLink controller="docDelegationSite"
                      action="deleteDefaultAgency"
                      update="defautAgencyId"
                      params="${[delegationId: agence.id]}">
            Changer d'agence par défaut
        </g:remoteLink>
    </g:if>
    <g:else>
        <g:remoteLink controller="docDelegationSite"
                      action="defineDefaultAgency"
                      update="defautAgencyId"
                      params="${[delegationId: agence.id]}">
            Définir comme agence par défaut.
        </g:remoteLink>
    </g:else>
</small>

这是我的控制器:

def defineDefaultAgency() {
    def agence = DocDelegationSite.read(params.delegationId)
    cookieService.setCookie(response, 'delegationId', params.delegationId)
    render template: '/docDelegationSite/delegationCookie',
        model: [agence: agence]
}

def deleteDefaultAgency() {
    def agence = DocDelegationSite.read(params.delegationId)
    cookieService.setCookie(response, 'delegationId', null)
    render template: '/docDelegationSite/delegationCookie',
        model: [agence: agence]
}

那么,如何确保在模板通话之前发送cookie的价值?

1 个答案:

答案 0 :(得分:0)

Cookie可从下一个http请求中获得。我认为你还没有明确的cookie行为。看看http cookie