Javascript jQuery延迟AJAX&;500服务器错误
试图找出如何调试my.ASMX中的泛型500错误 JS: C# 结果: 它甚至没有记录Javascript jQuery延迟AJAX&;500服务器错误,javascript,jquery,asmx,Javascript,Jquery,Asmx,试图找出如何调试my.ASMX中的泛型500错误 JS: C# 结果: 它甚至没有记录err参数。有什么想法吗 编辑 将错误添加到最初的Ajax调用中会得到日志信息,但仍然是通用的&无用的 编辑2 回答了我自己的问题并提出了后续问题: 我想换个说法: $.ajax({ type: "POST", url: 'Order.asmx/TestError', contentType: "application/json; charset=utf-8
err
参数。有什么想法吗
编辑
将错误添加到最初的Ajax调用中会得到日志信息,但仍然是通用的&无用的
编辑2
回答了我自己的问题并提出了后续问题:
我想换个说法:
$.ajax({
type: "POST",
url: 'Order.asmx/TestError',
contentType: "application/json; charset=utf-8",
error: function (XMLHttpRequest,textStatus,errorThrown){ console.log(errorThrown); }
});
我想换个说法:
$.ajax({
type: "POST",
url: 'Order.asmx/TestError',
contentType: "application/json; charset=utf-8",
error: function (XMLHttpRequest,textStatus,errorThrown){ console.log(errorThrown); }
});
在正确的方向踢了一脚并进一步挖掘之后,我发现这个问题是双重的 首先,实际上我建议关闭web.config中的
customErrors
。事实并非如此,而是非常接近
真正的罪魁祸首是错误处理模块。禁用它后,无论customErrors
是打开
还是关闭
,我都能够中继自定义错误
第二个问题是,尽管我现在可以处理错误,但仍然无法传递System.Exception
对象。我发现这是因为异常.TargetSite
属性不可序列化
我通过创建自己的JsonException
类并只包括System.Exception
类的可序列化属性(为了简单起见,在这里缩写)来解决这个问题
现在我终于得到了我想要的数据:
在朝正确方向踢了一脚并进一步挖掘之后,我发现这个问题是双重的 首先,实际上我建议关闭web.config中的
customErrors
。事实并非如此,而是非常接近
真正的罪魁祸首是错误处理模块。禁用它后,无论customErrors
是打开
还是关闭
,我都能够中继自定义错误
第二个问题是,尽管我现在可以处理错误,但仍然无法传递System.Exception
对象。我发现这是因为异常.TargetSite
属性不可序列化
我通过创建自己的JsonException
类并只包括System.Exception
类的可序列化属性(为了简单起见,在这里缩写)来解决这个问题
现在我终于得到了我想要的数据:
将对象记录到控制台,仍然是一个通用的“内部服务器错误”,知道如何在其中获取我的自定义消息吗?尝试记录其他参数-textStatus和XMLHttpRequest。我这样做了,没有帮助。来自jQuery.com文档-当发生HTTP错误时,ErrorSprown会接收HTTP状态的文本部分,例如“未找到”或“内部服务器错误”。您确定您的自定义消息会返回到浏览器吗?你能看到完整的响应吗(例如,在ChromeDeveloperTools或Firebug中的网络选项卡中)不,绝对不是——我正在使用ChromeDeveloperTools。请参阅编辑w/屏幕截图。这使对象记录到控制台,仍然是一个通用的“内部服务器错误”,知道如何在其中获取我的自定义消息吗?尝试记录其他参数-textStatus和XMLHttpRequest。我这样做了,没有帮助。来自jQuery.com文档-当发生HTTP错误时,ErrorSprown会接收HTTP状态的文本部分,例如“未找到”或“内部服务器错误”。您确定您的自定义消息会返回到浏览器吗?你能看到完整的响应吗(例如,在ChromeDeveloperTools或Firebug中的网络选项卡中)不,绝对不是——我正在使用ChromeDeveloperTools。请参见编辑w/屏幕截图。
$.ajax({
type: "POST",
url: 'Order.asmx/TestError',
contentType: "application/json; charset=utf-8",
error: function (XMLHttpRequest,textStatus,errorThrown){ console.log(errorThrown); }
});
public class JsonException
{
public string Source { get; set; }
public string Message { get; set; }
public string StackTrace { get; set; }
public JsonException(Exception ex)
{
this.Source = ex.Source;
this.Message = ex.Message;
this.StackTrace = ex.StackTrace;
}
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public object TestError()
{
try
{
throw new Exception("Testing error");
}
catch (Exception ex)
{
return new JsonException(ex);
}
}