如何检测图像加载失败的原因?
How can I detect WHY an image failed to load?
我在页面上有一个 img 元素,其 src 在页面加载时动态设置(不同情况下使用不同的图像,图像由客户提供)。
我可以检测到图片何时加载失败,并通过报告来处理。当它加载失败时,我还设置了一个占位符图像。
<img alt="Image not found" onError="failedToLoadResource" id="something" class="class1 class2">
效果很好。然而,仅仅知道图像加载失败的时间是不够的。我需要能够确定它发生的原因。图片托管在我们的服务器上,因此 404 不太可能,但并非不可能。我无法访问客户的设备,也无法重现他们描述的问题。
我试过环顾四周,但找不到我要找的东西...
我猜可能是 404s、一些 CSP 配置问题、可能是一些互联网连接问题,等等。我只是想知道它是什么,以便更好地理解它。
编辑:忘了说代码在 Cordova 应用程序中,所以没有要检查的日志。
从客户端,您可以尝试通过调用 ajax 然后解析响应来访问图像。使用 jQuery.
轻松完成
var call = $.ajax( "image.img" )
.fail(function( call, textStatus ) {
alert( "Request failed: " + textStatus );
});
从服务器端,您可以检查服务器日志,搜索正确的请求并查看发生了什么。如果请求从未到达服务器,则可能是 network/routing/firewall 问题。
但是,执行此操作的步骤在很大程度上取决于后端使用的内容。
我在页面上有一个 img 元素,其 src 在页面加载时动态设置(不同情况下使用不同的图像,图像由客户提供)。
我可以检测到图片何时加载失败,并通过报告来处理。当它加载失败时,我还设置了一个占位符图像。
<img alt="Image not found" onError="failedToLoadResource" id="something" class="class1 class2">
效果很好。然而,仅仅知道图像加载失败的时间是不够的。我需要能够确定它发生的原因。图片托管在我们的服务器上,因此 404 不太可能,但并非不可能。我无法访问客户的设备,也无法重现他们描述的问题。
我试过环顾四周,但找不到我要找的东西...
我猜可能是 404s、一些 CSP 配置问题、可能是一些互联网连接问题,等等。我只是想知道它是什么,以便更好地理解它。
编辑:忘了说代码在 Cordova 应用程序中,所以没有要检查的日志。
从客户端,您可以尝试通过调用 ajax 然后解析响应来访问图像。使用 jQuery.
轻松完成var call = $.ajax( "image.img" )
.fail(function( call, textStatus ) {
alert( "Request failed: " + textStatus );
});
从服务器端,您可以检查服务器日志,搜索正确的请求并查看发生了什么。如果请求从未到达服务器,则可能是 network/routing/firewall 问题。
但是,执行此操作的步骤在很大程度上取决于后端使用的内容。