【问题标题】:Handling jQuery AJAX Errors globally全局处理 jQuery AJAX 错误
【发布时间】:2012-09-27 15:42:50
【问题描述】:

你们对全局处理 AJAX 错误、在控制台中显示任何/所有信息有什么想法?

到目前为止,我正在做这样的事情:

jSpace._displayAjaxErrors = function (xhrResponseText) {

    var errObj = $.parseJSON(xhrResponseText);

    // _log is an internal console log that won't break in IE (aka does nothing)
    _self._log('\n -- AJAX ERROR @ ' + _self._getTimeStamp() + ' --');

    _self._log('ExceptionType : '   + errObj.ExceptionType);
    _self._log('Error Message : '   + errObj.Message);
    _self._log('StackTrace    : \n' + errObj.StackTrace);​

    // then a dialogBox here
};

目前每个.ajax() 都包含此内容:

error: function (xhr, status, error) {
    jSpace._displayAjaxErrors(xhr.responseText);
}

我不熟悉.ajaxError(),但想知道是否有更好的方法来完成这一切!

您如何轻松查看错误的内容/位置?

【问题讨论】:

    标签: javascript ajax jquery error-handling


    【解决方案1】:

    jQuery 已经提供了ajaxError 函数来全局捕获所有 ajax 错误,你只需要使用它

    $( "div.log" ).ajaxError(function(e, jqxhr, settings, exception) {
      //e for event 
      //jqxhr for xhrResponse
    });
    

    http://api.jquery.com/category/ajax/global-ajax-event-handlers/

    【讨论】:

    • 我一直在阅读它,但是这个 div.log 是什么?我假设我可以在那里即时创建 div $('<div class="log" />').ajaxError(function () {}); 对吗?我只希望主要记录所有内容
    • 你可以创建<div class="log" /> 或者直接使用$.ajaxError 没问题
    • 太棒了!我会玩这个,然后在那里添加我的事件。知道页面上的error: function () { } 是否会自动覆盖.ajaxError()?
    • 您可能会遇到其他错误:其他地方:),它不会覆盖但会同时调用它们
    猜你喜欢
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 2013-08-31
    • 1970-01-01
    • 2012-02-25
    相关资源
    最近更新 更多