我有以下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
错误:错误 错误文本:未定义
答案 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端的错误消息(可能还有状态代码)。我通常记录原始错误,然后为客户端抛出一个自定义/描述性错误。