当根据请求的格式发生错误 500 时,我试图在 Grails 中提供不同的响应。
我创建了一个 ErrorController 并在 URLMappings 中使用它,但我没有得到正确的请求格式:
def handle() {
withFormat {
html {
response.status = 500
render(view:'/errors/serverError')
}
json {
response.setContentType "application/json; charset=utf-8"
response.status = 500
ApiResponse apiResponse = new ApiResponse(
meta: new ApiMeta(
code: 500,
errorType: "Whatever",
msgs: ["${request.exception}"]
)
)
render apiResponse as JSON
}
}
}
响应总是在 html 中。还尝试了“request.withFormat”,结果相同。
我在这里缺少什么?