Trong hành động điều khiển của tôi, tôi đã cố gắng đặt contentType của phản hồi như dưới đây.grails response.addHeader hoặc setHeader là không thể trong bộ lọc khi response.setContentType được chạm vào trong hành động điều khiển
class MyController {
def rss = {
response.setContentType('text/xml')
//I even tried setHeader('contentType') and also render(contentType:'text/xml',...)
render(template:'/displayRss', model:[:])
}
}
Trong bộ lọc tôi đã cố gắng để thiết lập các tiêu đề cho tất cả các bộ điều khiển và hành động params
class Filter {
def filters = {
all(controller:'*', action:'*'){
after = {
response.setHeader('Cache-Control', 'no-cache')
}
}
}
}
header được thêm vào cho tất cả các hành động khác trừ các hành động trong đó phản ứng contentType được sửa đổi. Có vẻ như response.isCommitted() được trả về là true trong hành động đó một mình. Tôi không hiểu cơ bản về kết xuất ...?
Ngoài ra đây không phải là trường hợp nếu tôi sử dụng render (xem: '/ abc') thay vì view (mẫu: '/ abc', mô hình: [:])
Cảm ơn trước