如何阻止jQuery.ajax()将失败记录到控制台?

时间:2012-08-14 09:07:26

标签: javascript jquery google-chrome

我正在使用以下jQuery JSONP请求来检查URL的资源状态。当资源不可用或服务器关闭时,我的ajaxFail()功能会更新显示。

function fetchServerStatus(service, host)
{
    var port = serverStatus[service].port;
    $.ajax({
        url: "http://" + host + ":" + port + "/admin/server/status",
        dataType: "jsonp",
        timeout: 1000,
        error: ajaxFail,
        fail: ajaxFail,
        success: ajaxDone,
        done: ajaxDone,
        complete: ajaxAlways,
        always: ajaxAlways
    });
}

我遇到的问题是,尽管声明了failerror的处理程序,它们没有向控制台记录任何内容,但jQuery始终在控制台中记录失败的请求。如果资源长时间不可用,则会构建一个巨大的控制台日志,最终导致浏览器进程崩溃(在我的情况下为Chrome)。

有没有办法阻止它这样做?

2 个答案:

答案 0 :(得分:49)

处理任何HTTP请求时,chrome控制台中的日志条目是chrome的行为,而不是jQuery或ajax(XMLHttpRequest)的问题,甚至是<img>或{{1标签可能会导致此问题。

您唯一的选择是修复服务器端代码,不要触发ajax错误(例如404找不到或内容类型错误),因此根据记录到控制台的内容,可能会找到更好的解决方案,请在您的控制台中提供准确的日志消息。

答案 1 :(得分:0)

将其放在页面顶部:

<script>

$(document).ready(function() {
jQuery.migrateMute = true;
})
</script>
它暂时 - 但为我工作。节拍必须滚动45行无意义来调试js错误。