2017-09-26 97 views
3

我的目标是使在具有渲染使用Grails空HTTP响应3

  • 一个给定的状态码一个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() 

但这阻止我们使用Grails的拦截after用于发送响应之前做一些方法。这就是为什么我们正在寻找一种不改变HTTP响应的方式(例如添加一个Content-Type标题)。

+0

不能传递'的contentType:“无论/你-want''为'使()'和'的status'? –

+0

如果没有body(例如通过'text'属性),'render'方法会忽略'contentType'属性。 –

回答

-1

你可以写只是想:

response.status = 204 
render "" 
+0

这增加了'Content-Type:text/html; charset = utf-8'头。 –