jquery Ajax 错误函数未触发
本文关键字:函数 Ajax 错误 jquery | 更新日期: 2023-09-27 18:31:40
下面是我的函数(第一个代码片段),当我运行下面的函数时,它通过我的处理程序进入我的代码,在我的代码中它抛出异常(第二个代码段),异常被捕获后,它回到我的处理程序并进入捕获区域,最后回到 JavaScript 成功函数,但错误它没有运行错误部分。
BenefitOperations.performBenefitOperation = function(data) {
$.ajax({
type: "POST",
url: "BenefitOperation.axd",
data: JSON.stringify(data.BenefitOperationJson),
dataType: "json",
contentType: "application/json; charset=utf-8",
beforeSend: function() { PageMask.show(); },
success: function(response) {
if (response.Success == true)
performPostBack();
else
window.alert(Res.BenefitOperationFailure);
},
error: function(e, x, y) { window.alert(Res.BenefitOperationError + y); } }); }
这是我的职能
else
{
throw new ApplicationException(string.Format("Benefit operation type {0} for benefit type {1} is not registered", Enum.GetName(typeof(EmployeeBenefitData.BenefitOperationType), parameters.OperationTypeID), Enum.GetName(typeof(EmployeeBenefitData.BenefitTypeEnum), parameters.BenefitTypeID)));
}
这是我的处理者的捕获
catch
{
jsonOutput = JsonConvert.SerializeObject(new
{
Success = false
});
}
finally
{
context.Response.Clear();
context.Response.ContentEncoding = Encoding.UTF8;
context.Response.ContentType = "application/json";
context.Response.Write(jsonOutput);
}
$.ajax()
的error
回调不会在代码中调用,因为没有错误。 error
表示检索响应时出现问题,例如。来自服务器的 500 错误。
在代码中,您自己捕获ApplicationException
并返回 JSON。如果希望使用 error
处理程序,请引发异常,不要在 C# 代码中捕获它 - 但应注意,当前代码是更好的方法。
Rory 是对的,只需在遇到错误/异常或操作失败时设置HTTP 500状态代码。
您可以设置 HTTP 500 状态代码,例如...
context.Response.StatusCode = 200;