如何检测图像加载失败的原因?

时间:2017-10-06 12:37:53

标签: javascript jquery html image onerror

我在页面上有一个img元素,其src在页面加载时动态设置(不同情况下的图像不同,图像由客户端提供)。

我可以检测到图像无法加载的时候,我通过报告来处理它。我还在加载失败时设置占位符图像。

<img alt="Image not found" onError="failedToLoadResource" id="something" class="class1 class2">

这很有效。但是,仅知道图像何时无法加载是不够的。我需要能够确定它发生的原因。图像托管在我们的服务器上,因此404不太可能,但并非不可能。我无法访问客户端设备,因此无法重现问题。

我试过环顾四周,但找不到我要找的东西......

我猜它可能是404s,一些CSP配置问题,也许是一些互联网连接打嗝,无论如何。我只是想知道它是什么,所以我可以更好地理解它。

编辑:忘了说代码在Cordova应用程序中,所以没有要检查的日志。

1 个答案:

答案 0 :(得分:1)

从客户端,您可以尝试通过进行ajax调用来访问图像,然后解析响应。使用jQuery轻松完成。

var call = $.ajax( "image.img" )
  .fail(function( call, textStatus ) {
    alert( "Request failed: " + textStatus );
  });

从服务器端,您可以检查服务器日志,搜索正确的请求并查看发生的情况。如果请求永远不会到达服务器,则可能是网络/路由/防火墙问题。

但是,执行此操作的步骤高度依赖于后端使用的内容。