35

我正在使用以下 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
    });
}

我遇到的问题是,尽管声明了 and 的处理程序failerror它不会将任何内容记录到控制台,但 jQuery 总是在控制台中记录失败的请求。如果资源长时间不可用,这会建立一个巨大的控制台日志,最终导致浏览器进程崩溃(在我的例子中是 Chrome)。

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

4

2 回答 2

53

chrome 控制台中的日志记录条目是 chrome 在处理任何 HTTP 请求时的行为,不是 jQuery 或 ajax(XMLHttpRequest) 的问题,即使是<img>or<link>标记也可能导致此问题。

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

于 2012-08-14T09:12:20.393 回答
2

把它放在你的页面顶部:

<script>

$(document).ready(function() {
jQuery.migrateMute = true;
})
</script>

它是暂时的-但对我有用。不必滚动 45 行废话来调试 js 错误。

于 2017-03-24T17:00:38.427 回答