2

在我的 Grails 3.2 应用程序中,我发现未设置 cookieafterafterView方法。

我的(简化的)控制器:

class MyInterceptor {

    boolean before() {
        Cookie c = new Cookie('before', 'ok')
        response.addCookie c
        true
    }

    boolean after() {
        Cookie c = new Cookie('after', 'ok')
        response.addCookie c
        true
    }

    void afterView() {
        Cookie c = new Cookie('afterview', 'ok')
        response.addCookie c
    }
}

响应标头中仅before返回 cookie 。set-cookie

我是否缺少response此类方法中的任何属性限制?

4

1 回答 1

3

问题是当after*调用该方法时,控制器或视图可能已经写入响应,因此响应已被提交,添加任何标头或 cookie 为时已晚。

这不是 Grails 本身的限制,而是 servlet 容器的工作方式。

于 2016-10-28T09:34:41.940 回答