jac*_*uac 6 grails groovy grails-3.1
我的目标是在Grails 3.1控制器方法中呈现HTTP响应
204,但可能其他人,如200)Content-Type,或Content-Encoding标题(因为没有内容,对吧?)render(status: 204)添加一个任意Content-Type: application/json标题.
此外,grails.artefact.controller.support.ResponseRenderer.render()在这种情况下,此方法(请参阅参考资料)调用HttpServletResponse.sendError(),尽管它不是错误.这是为什么?
目前我们通过response直接处理来解决这个问题:
response.status = statusCode.value()
response.flushBuffer()
Run Code Online (Sandbox Code Playgroud)
但这会阻止我们在发送响应之前使用Grails拦截器 after方法执行某些操作.这就是为什么我们正在寻找一种不同的方式,它不会改变HTTP响应(比如添加Content-Type标题).
Sha*_*wal -3
你可以这样写:
response.status = 204
render ""
Run Code Online (Sandbox Code Playgroud)
这将以Content-Typeheader 作为text/html;charset=utf-8进行响应。要更改内容类型,您可以使用 Grails 中的内容协商。
要完全删除Content-Type标头,您可以尝试response.setHeader("Content-Type", "")
| 归档时间: |
|
| 查看次数: |
689 次 |
| 最近记录: |