首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在jQuery的ajax请求中处理返回整个HTML文档的服务器端HTTP 4nn/5nn错误

在jQuery的ajax请求中处理返回整个HTML文档的服务器端HTTP 4nn/5nn错误
EN

Stack Overflow用户
提问于 2009-11-16 04:53:03
回答 4查看 4.2K关注 0票数 20

切中要害:如何处理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请求一样。我已经解决了如下问题:

代码语言:javascript
复制
function init() {
    $.ajaxSetup({
        error: handleXhrError
    });
}

function handleXhrError(xhr) {
    document.open();
    document.write(xhr.responseText);
    document.close();
}

尽管它工作得很完美,但在我看来,它就像一个黑客。将整个文档替换为HTTP错误页的内容。但这也是你要遵循的方式吗?如果没有,你能详细说明为什么不和你更喜欢什么方式吗?我看到的唯一替代方法是使用JS显示一些警告/消息框来通知用户无法解决的错误,但是用户可以忽略它并继续页面,而这应该是不可能的。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1738785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档