切中要害:如何处理jQuery的ajax请求中的服务器端HTTP 4nn/5nn错误?本例涉及服务器端的JSP/Servlet the应用程序。在这里,我不是在谈论诸如NullPointerException
等微不足道的运行时异常。假设它们都得到了完美的处理。这种HTTP4NN/5NN错误的一个很好的例子是401未授权(用户权限不足)和500内部服务器错误(数据库关闭、I/O错误、Error
等)。假设它们不能(或不应该)在编码级别被捕获。
现在,我刚刚在web.xml
中为这类错误声明了一个<error-page>
。它基本上将请求转发到一个预定义的JSP错误页面,在这个页面中,终端用户被告知发生了一个严重的错误,用户可以联系xx@xx.xx寻求进一步的帮助。同一页面还显示有关错误/异常的全局详细信息。
它在常规的超文本传输协议请求中工作得很好,但是如何在使用jQuery的XMLHtttp请求中处理它呢?对用户体验最好的是什么?对我来说,它只是显示整个错误页面,就好像它是一个普通的HTTP请求一样。我已经解决了如下问题:
function init() {
$.ajaxSetup({
error: handleXhrError
});
}
function handleXhrError(xhr) {
document.open();
document.write(xhr.responseText);
document.close();
}
尽管它工作得很完美,但在我看来,它就像一个黑客。将整个文档替换为HTTP错误页的内容。但这也是你要遵循的方式吗?如果没有,你能详细说明为什么不和你更喜欢什么方式吗?我看到的唯一替代方法是使用JS显示一些警告/消息框来通知用户无法解决的错误,但是用户可以忽略它并继续页面,而这应该是不可能的。
https://stackoverflow.com/questions/1738785
复制相似问题