描述性错误消息

时间:2010-10-04 15:36:39

标签: javascript ajax jquery

我有以下jQuery,它没有给出最具描述性的错误消息......

url: 'server_page.aspx',
type: 'POST',
data: { intID:$(this).attr("id"), strState:"1" },
error: function() { alert('Error'); },
success: function() {  }

如果可能,我如何获得更多描述性错误消息?

编辑:

这是完整的javascript:

(文档)$。就绪(函数(){     $(“input:checkbox”)。change(function(){         var that = this;

    if($(this).is(":checked")) { 
        $.ajax({
            url: 'favorite_on_off.aspx',
            type: 'POST',
            data: { strFavoriteID:$(that).attr("id"), strState:"1" },
            timeout: 1000,
            error: function(xhr, status, error)
            {
                alert("values: strFavoriteID: " + $(that).attr("id") + " strState: " + "1");
                alert('Error: ' + status + '\nError Text: ' + error);  
            },
            success: function() {  }
        });
    } else {
        $.ajax({
            url: 'favorite_on_off.aspx',
            type: 'POST',
            data: { strFavoriteID:$(that).attr("id"), strState:"0" },
            timeout: 1000,
            error: function(xhr, status, error)
            {
                alert("values: strFavoriteID: " + $(that).attr("id") + " strState: " + "0");
                alert('Error: ' + status + '\nError Text: ' + error);  
            },
            success: function() {  }
        });
    }
}); 

});

以下是错误消息:

值:strFavoriteID:c:\ folder \ document.doc strState:1

错误:错误 错误文本:未定义

3 个答案:

答案 0 :(得分:3)

您可以使用传递给the error callback的所有参数,例如:

error: function(xhr, status, error) { 
  alert('Error: ' + status + '\nError Text: ' + error); 
},

答案 1 :(得分:1)

提供给error回调的第二个参数是textStatus,它应该包含错误的描述:

error: function(xhr, textStatus) { alert(textStatus); }

请注意,您可能不应该向用户提供此信息。使用Javascript解析消息并给他们一个很好的友好消息来解释错误。

答案 2 :(得分:0)

我有这个方法:

function HandleAjaxError(request, status, error) {
    var ex = eval("(" + request.responseText + ")");

 $('body').addClass("ui-widget-overlay");
    alert(ex.Message);
    $('body').removeClass("ui-widget-overlay");
}

$.ajax({
    type: "POST",
    url: window.location.pathname + "/DoStuff",
    data: "{}",
    success: Success,
    error: HandleAjaxError
});

这样,我可以优雅地处理ASP.NET端的错误消息(可能还有状态代码)。我通常记录原始错误,然后为客户端抛出一个自定义/描述性错误。