Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firefox Javascript控制台和网络选项卡未显示重要错误?_Javascript_Google Chrome_Debugging_Firefox_Console.log - Fatal编程技术网

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

Firefox Javascript控制台和网络选项卡未显示重要错误?,javascript,google-chrome,debugging,firefox,console.log,Javascript,Google Chrome,Debugging,Firefox,Console.log,当我在网页上随意调试一些javascript时,我注意到Firefox(33.0-Windows7)javascript控制台不会告诉我是否有一些.js文件加载失败,所以我决定仔细看看 我发现,如果我有一个带有指向错误本地url的脚本标记的HTML,那么当页面加载时,控制台根本不会显示任何错误。相反,它显示了错误的.js脚本的完整路径和文件名,就好像它没有问题一样 我还尝试使用一个按钮元素向不存在的远程url发出xmlhttprequest,同样,在控制台中单击时没有任何错误 $("#butto

当我在网页上随意调试一些javascript时,我注意到Firefox(33.0-Windows7)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\u FILE\u NOT\u FOUND”)

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

更新,附加Firefox和Chrome的屏幕截图。 正如你所看到的,情况完全不同。

代码:



Firefox控制台选项卡:

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

Firefox网络选项卡:




相对于

Chrome控制台选项卡:




Chrome网络选项卡:

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

http://localhost/[script-address]
它应该在两个控制台中报告错误

以下是我的测试代码:

和firefox网络面板

还有镀铬控制台

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


正如Ian的评论中所提到的,如果出现语法错误、URL不存在或没有返回响应,JQuery的getJSON方法中的JQuery API文档将自动失败。您可以通过在末尾添加.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方法将函数绑定到错误事件:


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

你是在看控制台的脚本选项卡还是在控制台的网络选项卡?当然是两个选项卡。你在两个地方都看不到它?我根本无法复制。我打开控制台,向一个随机URL发出AJAX请求,它在脚本选项卡和网络选项卡中显示了一个错误,这是另一回事。jQuery会使用错误,控制台无法捕获它。对
$.getJSON()
的结果使用
.fail()
方法查看任何错误…或者使用本机
XMLHTTPRequest
在控制台的脚本选项卡中立即查看它。无论哪种方式,你都会在控制台的“网络”选项卡中看到它。这不是真的,在chrome中,你会在控制台和“网络”选项卡中看到err::FILE_not_FOUND_错误,用firefox和chrome的屏幕截图检查更新的问题。
$.ajaxError(function() {
    console.log("AJAX request failed.");
});