2016-10-26 7 views
0

Grails 3.2アプリケーションでは、afterafterViewに設定されたクッキーは設定されていません。Grails 3インターセプタ - 'after'メソッドでクッキーを設定できません

マイ(簡体字)コントローラ:

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クッキーはset-cookieレスポンスヘッダで返されます。

このような方法では、response属性の制限がありません。

+0

「このようなメソッドでは、応答属性の制限がありませんか? - いいえ。 –

+0

だから、それはもっとバグのようですね? – ilPittiz

答えて

2

after*メソッドが呼び出されたときに、コントローラーまたはビューが既に応答に書き込まれている可能性があり、応答がコミットされていて、ヘッダーまたはCookieを追加できない場合が問題です。

これはGrailsの制限ではありませんが、サーブレットコンテナの動作の仕方です。

関連する問題