gpt4 book ai didi

javascript - Firefox Javascript 控制台和网络选项卡未显示重要错误?

转载 作者:行者123 更新时间:2023-11-30 17:14:09 26 4
gpt4 key购买 nike

在网页上随意调试一些 javascript 时,我注意到 Firefox (33.0 - Windows 7) Javascript 控制台不会告诉我是否无法加载某些 .js 文件,因此我决定仔细研究一下。

我发现,如果我有一个带有指向错误本地 url 的脚本标记的 HTML,那么当页面加载时,控制台不会显示任何错误。相反,它会显示错误 .js 脚本的完整路径和文件名,就好像它没有任何问题一样。

我还尝试使用按钮元素向不存在的远程 url 发出 xmlhttprequest,同样的,单击时控制台中完全没有错误。

$("#button").click(function(){
console.log("clicked me")
$.getJSON("demo_ajax_json.js",function(result){
$.each(result, function(i, field){
$("div").append(field + " ");
});
});
});

而“点击我”将按预期显示。

我还验证了开发者工具中所有可能的日志设置都已检查。

在读到有人幸运地重置了完整的设置后,我通过菜单 > 帮助 > 疑难解答 > 重置 Firefox 设置完成了这个过程。但不是。错误仍然没有出现。

所以,故事结束了,因为我最近才决定调查这个问题,而且我不记得我有多久没有看到错误了,我在问自己是否没有显示这些错误完全在 Firefox 中设计,如果它只是 Chrome 的特权......它自己会显示所有错误(例如“net::ERR_FILE_NOT_FOUND”)。

有人想在他们的控制台上进行快速测试吗?

更新,附上 Firefox 和 Chrome 的屏幕截图。

如您所见,情况完全不同。


代码:code



Firefox 控制台选项卡:Firefox Console Tab

丢失的文件也没有错误,其名称只是在控制台中正常打印出来,就好像它们没有任何问题一样。



Firefox 网络选项卡:Firefox Network Tab




反对


Chrome 控制台选项卡:Chrome Console Tab



Chrome 网络选项卡:Chrome Network Tab:

最佳答案

在查看您添加的屏幕截图后,我注意到您是本地文件系统上的引用资源,因此我决定进行一些测试。我发现 Firefox 确实不报告本地文件系统上文件的网络错误,在控制台或网络选项卡上不报告任何内容,但是它确实正确地报告了网络资源。不幸的是,我无法在 chrome 中准确地重现错误,因为我的本地文件系统被锁定得相当严密(我在一个企业拥有的系统上)并且 chrome 只是报告它没有访问本地文件系统的权限,无论该文件是否存在(Firefox 什么也没说)。同时,我想如果您将脚本/链接标记指向 CDN 等网络地址,或者如果您正在本地测试服务器上进行测试,例如:

http://localhost/[script-address]

它应该在两个控制台中报告错误。

这是我的测试代码: enter image description here

和firefox网络面板 enter image description here

还有 chrome 控制台 enter image description here

将我的原始答案保留在这一点以下,因为 JQuery API 注释可能对其他发现自己的人有所帮助


如 Ian 的评论和位于 http://api.jquery.com/jQuery.getJSON/ 的 JQuery API 文档中所述如果出现语法错误、URL 不存在或未返回响应,JQuery 的 getJSON 方法将简单地无提示地失败。您可以通过在末尾添加 .fail() 方法调用来强制它这样做:

$("#button").click(function(){
console.log("clicked me")
$.getJSON("demo_ajax_json.js",function(result){
$.each(result, function(i, field){
$("div").append(field + " ");
});
}).fail(function() {
console.log("AJAX request failed");
});
});

您还可以使用此处记录的 .ajaxError 方法将函数绑定(bind)到错误事件:http://api.jquery.com/ajaxError/

$.ajaxError(function() {
console.log("AJAX request failed.");
});

请注意,当您这样做时,如果您创建变量来保存它们,JQuery 将向函数传递几个有用的参数,包括错误事件本身、触发它的 ajax 对象、使用的设置以及错误字符串,然后您可以使用它向控制台输出您需要的任何信息,以便调试导致错误的原因。祝你好运!

关于javascript - Firefox Javascript 控制台和网络选项卡未显示重要错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26433216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com