【发布时间】:2012-08-31 12:29:40
【问题描述】:
如果我发出常规请求,我可以在 UrlMappings.groovy 中定义对错误和异常的处理,如下例所示:
"403"(controller: 'error', action: 'index', params:['code':'403'])
"404"(controller: 'error', action: 'index', params:['code':'404'])
"500"(controller: 'error', action: 'index', params:['code':'500'])
"500"(controller: 'home', action: 'noPrivileges', exception: IllegalOperationException)
然后我可以处理特定控制器中的错误并呈现我选择的视图,例如
class ErrorController {
def index = {
render view: "/errors/myErrorPage", model: [code: params.code]
}
}
这很好用,只要服务器上出现错误,我就会得到错误页面。
现在我怎样才能为 ajax 请求实现相同的行为?我正在使用 grails remoteFunction 或 formRemote 发出 ajax 请求。每次服务器发生异常时,我都想在 javascript 中执行相同的代码(例如,我想用 alert('There was an exception') 显示警报)。
上述方法不适用于 ajax 请求。我仍然返回一个错误,即使错误中有 myErrorPage.gsp 的内容,它也不会打印到我使用 formRemote 或 remoteFunction 的更新参数指定的 html 元素中。
【问题讨论】:
标签: grails groovy error-handling