【问题标题】:Eliminate 404 url error in console?消除控制台中的 404 url​​ 错误?
【发布时间】:2012-10-06 14:31:16
【问题描述】:

我尝试消除由于缺少源 (src) 而发生的 404 错误..

var $chart = $("<img />")
    .addClass("trend-pic")
    .error(function(){
        console.log("error loading..")
    });
try{
    $chart.attr("src", jobs[counter].url + "test/trend")
}catch(err){
    $chart.attr("src", "");
}    

如果尝试了很多方法来捕获错误,即在末尾添加 .error(function(){})。 使用$chart.load() - 方法来检查图像是否被加载? 这些都没有帮助?

GET {myURLString} 404 (Not Found)

浏览器:Safari

【问题讨论】:

  • 除了确保图像始终存在之外,这不是您可以防止的错误。您必须发出请求,它将显示在网络请求/控制台中。
  • 它告诉您发生了 404 错误,因为发生了 404 错误确实。避免这种情况的唯一方法是在服务器上使用代理脚本

标签: javascript jquery safari console web-inspector


【解决方案1】:

您无法真正从控制台中删除这些 404 错误。 您可以做的最好的事情是进行一些 ajax 调用并查看返回码,但随后您将被限制为仅向您自己的域请求。

编辑--

哦,是的,这些错误会一直显示在“请求”标签中!它们只是不会出现在“控制台”标签中(在 Chrome 中)。

【讨论】:

    【解决方案2】:

    我认为除了使用正确的网址外,没有其他方法可以消除控制台中的错误。 在带有 try {} catch() 的代码中,会引发错误,并且将使用空字符串再次调用 $chart.attr

    你可以做的是在设置.attr()之前添加一个这样的检查

    if (jobs[counter].url !== void 0 && 
        jobs[counter].url.length !== 0) {
    
           $chart.attr("src", jobs[counter].url + "test/trend")
    }
    

    这样您就可以删除 try{} catch()

    希望对你有帮助。

    【讨论】:

    • if(jobs[counter].url) 就足够了,因为 undefined"" 是假的
    【解决方案3】:

    404 不是错误。这是服务器表示它没有客户端引用的源的方式。

    【讨论】:

    • 在我的萤火虫控制台中,它将 404 称为“网络错误”
    【解决方案4】:

    答案是否定的。因为这是服务器发送“有错误”的唯一方式。

    参考这个。

    Prevent 404 Error in console

    【讨论】:

      【解决方案5】:

      Ajax 仍然在找不到文件时抛出错误 (404)

      我正在使用这个功能

      function doIfFileServerAccessible(url, callbackFileServerAccessible, callbackNotFileServerAccessible) {
        try {
          var xhr = new XMLHttpRequest();
          xhr.open('HEAD', url, true);
          xhr.onreadystatechange = function () {
            if (this.readyState !== 4) { return; };
            if (this.status !== 200) {
              //alert('file on your site not found');
              callbackNotFileServerAccessible(this.responseText); return;
            } else {
              //alert('file on your site FOUND');
              callbackFileServerAccessible(this.responseText);
            };
          };
        } catch (error) { }
        
        try {
          xhr.send(); 
        } catch (error) { }
      }
      
      function callbackNotFileServerAccessible() {
        //example
        element.src = other
      }
      
      function callbackFileServerAccessible() {
        element.src = the one you tried
      }
      
      

      【讨论】:

        猜你喜欢
        • 2020-03-24
        • 2019-01-29
        • 1970-01-01
        • 1970-01-01
        • 2017-06-16
        • 1970-01-01
        • 1970-01-01
        • 2013-03-28
        相关资源
        最近更新 更多