【问题标题】:JQuery Ajax Error TextJQuery Ajax 错误文本
【发布时间】:2012-12-10 04:41:29
【问题描述】:

我想从 Java Servlet 设置关于 Ajax 错误操作的错误消息。

request.setAttribute(BreezeWebConstants.ERROR_MESSAGE, errMsg);
response.setStatus(HttpServletResponse.SC_FORBIDDEN);

error : function(jqXHR, textStatus, errorThrown) {
alert("Move Ticket Error - " + textStatus);
console.log("Move Unknown Ticket Error");
}

textStatus 是在 Jquery 中预定义的,但我需要在 java servlet 中设置自定义错误消息并在此错误函数上检索它。怎么做?

谢谢。

【问题讨论】:

  • 我猜你必须添加一个 if 条件,用 textStatus 检查预定义的错误消息并设置你自己的自定义消息
  • 你试过errorThrown吗?

标签: jquery ajax servlets response


【解决方案1】:

只需将错误消息以纯文本或 XML 或 JSON 的形式写入响应正文。

这是一个假设纯文本的示例:

response.setStatus(HttpServletResponse.SC_FORBIDDEN);
response.setContentType("text/plain;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(errMsg);

可以如下提取:

var message = jqXHR.responseText;

请注意,jQuery 也内置了 XML 和 JSON 解析,所以也很容易。

【讨论】:

  • 您能告诉我响应对象的类型吗?
  • @jenius:呃。问题是关于 servlet。
  • 是java中的HttpServletResponse吗?因为我有同样的问题,没有任何帮助。
【解决方案2】:

尝试使用$.ajaxSetup() 得到正确的错误,如下所示:

$(function() {
    $.ajaxSetup({
        error: function(jqXHR, exception) {
            if (jqXHR.status === 0) {
                alert('Move Ticket Error - Not connect.\n Verify Network.');
            } else if (jqXHR.status == 404) {
                alert('Move Ticket Error - Requested page not found. [404]');
            } else if (jqXHR.status == 500) {
                alert('Move Ticket Error - Internal Server Error [500].');
            } else if (exception === 'parsererror') {
                alert('Move Ticket Error - Requested JSON parse failed.');
            } else if (exception === 'timeout') {
                alert('Move Ticket Error - Time out error.');
            } else if (exception === 'abort') {
                alert('Move Ticket Error - Ajax request aborted.');
            } else {
                alert('Uncaught Move Unknown Ticket Error.\n' + jqXHR.responseText);
            }
        }
    });
});

只需进行 ajax 调用。如果出现任何错误,您将收到警报。

【讨论】:

    猜你喜欢
    • 2010-12-10
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 2017-12-23
    • 2011-10-11
    • 2014-11-22
    • 1970-01-01
    相关资源
    最近更新 更多