14

我尝试消除由于缺少源(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

4

5 回答 5

1

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

编辑 -

哦,是的,这些错误将继续显示在“请求”选项卡中!它们只是不会出现在“控制台”选项卡中(在 Chrome 中)。

于 2012-10-16T13:21:57.017 回答
0

我认为除了使用正确的 url 之外,没有办法消除控制台中的错误。在带有 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()

希望能帮助到你。

于 2012-10-16T13:28:52.967 回答
0

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
}

于 2021-06-24T10:00:21.107 回答
-1

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

参考这个。

防止控制台出现 404 错误

于 2017-09-28T12:22:08.237 回答
-3

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

于 2012-10-16T13:31:37.957 回答