在Grails中使用HTTP状态代码呈现JSON的简便方法

raf*_*ian 22 grails groovy

没有明确的"text/json"指定,有没有一种速记方式可以做到这一点?

def remoteError = {     
  render( status: 500, contentType: "text/json"){
      error( exception: "a remote exception occurred")
  }
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用as JSON...没有返回内容,但状态代码是正确的...

render( status: 500, exception: params.exception) as JSON 
Run Code Online (Sandbox Code Playgroud)

kro*_*ock 41

如果使用转换器参数进行渲染,则无法像使用gsp视图时通常那样指定任何其他参数,例如状态.但是,您可以在调用render之前设置响应状态:

response.status = 500
render([error: 'an error occurred'] as JSON)
Run Code Online (Sandbox Code Playgroud)