【发布时间】:2010-09-06 21:51:46
【问题描述】:
当使用jQuery的ajax method提交表单数据时,处理错误的最佳方法是什么? 这是调用的示例:
$.ajax({
url: "userCreation.ashx",
data: { u:userName, p:password, e:email },
type: "POST",
beforeSend: function(){disableSubmitButton();},
complete: function(){enableSubmitButton();},
error: function(xhr, statusText, errorThrown){
// Work out what the error was and display the appropriate message
},
success: function(data){
displayUserCreatedMessage();
refreshUserList();
}
});
请求可能由于多种原因而失败,例如重复的用户名、重复的电子邮件地址等,并且写入 ashx 以在发生这种情况时抛出异常。
我的问题似乎是,通过抛出异常,ashx 会导致 statusText 和 errorThrown 未定义。
我可以访问XMLHttpRequest.responseText,其中包含构成标准 .net 错误页面的 HTML。
我在 responseText 中找到页面标题并使用该标题来确定引发了哪个错误。虽然我怀疑当我启用自定义错误处理页面时这会崩溃。
我应该在 ashx 中抛出错误,还是应该返回状态代码作为调用 userCreation.ashx 返回的数据的一部分,然后使用它来决定采取什么行动?
您如何处理这些情况?
【问题讨论】: