【问题标题】:What is the best way to globally catch ajax errors in asp.net-mvc?在 asp.net-mvc 中全局捕获 ajax 错误的最佳方法是什么?
【发布时间】:2013-08-29 05:27:18
【问题描述】:

我发现自己将这段(简化的)代码放在了许多不同的 javascript 文件中:

 $(document).ajaxError(function (e, xhr, settings, exception) {
     alert('error in: ' + 
                         settings.url + ' \\n' + 
                         'error:\\n' + exception + 
                         ": " + xhr.responseText
          );
 });

是否有人可以通过将其放入我的 Site.Master 文件一次来想到任何缺点,以便我有一个一致的错误解决方案?如果我这样做,是否可以覆盖特定页面上的行为?

【问题讨论】:

  • 向最终用户显示 url 或异常没有任何意义......只显示来自服务器的错误消息

标签: jquery ajax asp.net-mvc error-handling


【解决方案1】:

在您的Site.Master 文件中使用$(document).ajaxError

要在特定实例中覆盖它,只需在单个 AJAX 调用中包含 error 回调,如下所示:

$.ajax({
    url: '/yourUrl',
    success: function(result) {
        alert('It worked!');
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
        alert('Your custom error message here.');
    }
});

对于您不想覆盖的那些,它们会省略 error 回调。

【讨论】:

  • 出于好奇,ajaxSetup() 与我在上述问题中直接调用 $(document).ajaxError 有什么区别?
  • 哇,刚刚阅读了这个文档,似乎使用 jQuery .ajaxSetup({error:{); 被认为是一种不好的做法,鼓励使用 $(document).ajaxError 处理程序,我正在更新我的答案以反映那个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-05
  • 2012-04-08
相关资源
最近更新 更多