【问题标题】:How to detect when an image link returns 404, BUT it's still a valid image如何检测图像链接何时返回 404,但它仍然是有效图像
【发布时间】:2013-10-23 17:15:17
【问题描述】:

Youtube 为不存在的缩略图返回 404,但它也返回有效的图像数据(损坏的视频缩略图),因此用 Image 检查它不起作用,不会调用 onerror:

var img = new Image();
img.onload = function() { alert("found")};
img.onerror = function() { alert("not found") };
img.src = "http://img.youtube.com/vi/aaaa/1.jpg";

运行时会显示“找到”。有没有办法检测404是否真的可以加载图片数据?

如果可以检测到链接返回标准的 youtube“破碎视频”缩略图数据,也很好。

【问题讨论】:

  • 您可以通过 HTTP 标头完成此操作,但这会花费您往返的费用。 stackoverflow.com/questions/220231/…。 ps;您可以通过 404 的 http 响应代码和 image/jpeg 的内容类型来识别它。
  • @Marvin Smit:但是我必须向 youtube 发出 AJAX 请求,不是吗?因为我需要 youtube 图片的标题,而不是当前文档的标题。由于同源策略限制,我无法向 youtube 发送 ajax 请求。
  • 只有当您可以控制“Access-Control-Allow-Origin”标头时才有可能,这可能是额外往返行程旁边的无选项,这很可能代价高昂。

标签: javascript http-status-code-404 thumbnails


【解决方案1】:

在这种情况下,作为一种粗略但可行的解决方法,我建议在加载时检查图像的大小。通常缩略图比较大,所以如果返回的图片是 120x90px 你可以假设它是 404 图片。

唯一的另一种方法是通过 PHP 脚本加载它,该脚本可以在通过图像之前检查 HTTP 标头。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-20
  • 2020-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-27
相关资源
最近更新 更多