Я пытаюсь добавить пользовательский заголовок HTTP для ответа определенного набора контроллеров с использованием Grails фильтров:Добавление пользовательских заголовков ответа после того, как «делают, как JSON»
class ApiFilters {
def filters = {
xwingFilter(uri:'/api/**') {
after = {
response.setHeader('X-Wing', 'foo')
}
}
}
}
Если контроллер делает вид или текст, заголовок добавляется в ответ. Если контроллер использует «render as JSON», заголовок не добавляется. Похоже, конвертер JSON закрывает выходной поток и отправляет его сразу. Это правильно?
Я мог бы использовать перехватчики Grails, но мне пришлось бы повторить его в нескольких контроллерах. Любые идеи о том, как я могу это достичь?
Вы можете динамически добавлять afterInterceptor всем контроллеры при запуске (Bootstrap.groovy). –
Это может сработать. Я думаю, что также имеет базовый контроллер с перехватчиком и простирается от него. Благодарю. – chozero