ajaxError在bind上获取错误文本

时间:2017-10-26 16:42:44

标签: c# jquery ajax asp.net-mvc-5

我已经查看了有关stackoverflow的其他相关问题,没有人做我正在搜索的内容。

在我的global.js我有这个:

$(document).ready(function () {
    $(document).ajaxSend(function () { ShowLoading(); });
    $(document).ajaxComplete(function () { HideLoading(); });
    $(document).ajaxError(function (xhr) { ShowPopup(xhr.responseText, 'error', true); });
});

现在,我尝试的只是xhr成功,而不是responseText。当我在我的C#MVC项目中抛出一个像throw new Exception("My error");这样的新错误时,而不是我编程的简单弹出窗口应该从我没有使用$.ajax({...})进行呼叫之前从底部弹出,我只是在Chrome的控制台中出错。如何在控制台中跳过该错误并在我的脚本中获取实际的错误文本并使用它,但我想要?可以使用document.ajaxError全局函数完成,还是必须在每次ajax调用时对其进行编程?如果是这样,我如何在那里获得该消息呢?

1 个答案:

答案 0 :(得分:1)

传递给ajaxError事件回调的值按以下顺序

  1. 事件
  2. jqXHR object
  3. 设置
  4. ERRORTEXT。
  5. 在您的代码中,您只访问event参数,该参数显然没有responseText proeprty,当您尝试访问该参数时,您将获得undefined

    解决方案是使用xhr参数,然后使用responseText(如果这是你需要传递给另一个方法的那个)。

    $(document).ajaxError(function (event,xhr,settings,errorText){ 
         console.log(errorText);
         alert('errorText',errorText);
         alert(xhr.responseText);
    });