【问题标题】:How to show .net exception thrown from jquery ajax call?如何显示从 jquery ajax 调用引发的 .net 异常?
【发布时间】:2019-03-29 14:41:21
【问题描述】:

我绝对确定这一定是重复的,但我找不到我正在寻找的答案,所以理想情况下,某个善良的灵魂能够快速关闭它作为重复并指出我的答案我在找。

我对 .net MVC 操作进行 ajax 调用并引发异常。 ajax调用的error函数中如何获取异常信息?

明确地说,我想在 .net 中捕获异常,然后发送将在成功函数中接收的消息。在我的第一份开发工作中,这种类型的方法是在 api 中采用的,它实际上花费了杂货店很多钱,因为开发人员没有阅读文档并且错误地实现了集成。如果发生了实际错误,这将永远不会发生。

同样,这涉及付款,我不希望有人因为没有阅读文档而无意中批准了订单(首先不会有文档,因为这是在内部用于小型企业)和认为因为没有抛出错误,所以订单必须成功处理。

话虽如此,我只是在寻找最简单的方法来获取异常的 Message 属性并显示它(异常本身不是自定义的,但它上面的消息是自定义的;所以不用担心意外的异常泄露系统详细信息)。

编辑:我现在意识到我被要求的东西是不可能的。我真正想要的东西是

a) 运行 ajax 方法的错误回调(当然也不运行成功回调)

b) 能够访问异常的消息

一般情况下,异常会发回 500 响应。我是否可以修改响应以将消息放在可以从错误回调访问的位置?

【问题讨论】:

  • “我不想在 .net 中捕获异常”是什么意思?您不想使用 try {} catch() {} 块吗?
  • 异常不会是 JSON 格式,也不是返回类型,因此您的 AJAX 请求无法将其作为 AJAX 响应。即使它是 JSON 格式,您也必须将其返回给请求。为此,您必须使用try catch 处理异常,以便您可以控制异常处理。
  • @TejSoft 我的意思是我不希望它返回会导致成功回调运行的成功响应。我希望错误回调运行。
  • @HimanshuUpadhyay 嗯...我明白你的意思。是否可以编辑关于 500 响应的任何内容,让我将异常的消息放在上面并从错误回调中获取它?
  • 我在这里找到了我要找的东西:visualstudiomagazine.com/blogs/tool-tracker/2015/10/…。我现在没有时间做出正确的答案,但如果其他人想这样做,我会将其标记为答案。

标签: jquery .net ajax exception model-view-controller


【解决方案1】:

你可以试试这个:error:function() 会捕获异常

 $.ajax({
    url: '',
    type: "",
    data:'',
    beforeSend:function(){
    },
    success: function (data) {
    },
    error: function (jqXHR, exception) {
    var msg = '';
    if (jqXHR.status === 0) {
        msg = 'Not connect.\n Verify Network.';
    } else if (jqXHR.status == 404) {
        msg = 'Requested page not found. [404]';
    } else if (jqXHR.status == 500) {
        msg = 'Internal Server Error [500].';
    } else if (exception === 'parsererror') {
        msg = 'Requested JSON parse failed.';
    } else if (exception === 'timeout') {
        msg = 'Time out error.';
    } else if (exception === 'abort') {
        msg = 'Ajax request aborted.';
    } else {
        msg = 'Uncaught Error.\n' + jqXHR.responseText;
    }
    console.log(msg);
}

【讨论】:

    猜你喜欢
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    相关资源
    最近更新 更多