浏览器如何确定img的onerror事件

时间:2015-04-29 07:57:52

标签: javascript html spring-mvc

我正在开发一个应用程序,它将向客户端提供一些图像,有时图像可能是空白的,我们使用spring mvc作为控制器,这是核心代码:

@RequestMapping
public ResponseEntity<byte[]> getImg(String id) {
    byte[] res = imgService.find(id); // this res  may be null
    headers.setDate("Expires", System.currentTimeMillis() + 24 * 3600 * 1000 * 7);
    return ResponseEntity.ok().headers(headers).contentType(MediaType.IMAGE_PNG).body(res);
}

如图所示,无论图像是否存在,响应代码始终为200。

在我加载图片后的客户端,我将为图片添加onerror事件,但是我发现一旦服务器找不到图像就会触发onerror事件(即正文可能为空),即使状态代码为200。

然后,我尝试在缺少所需图像后返回固定图像,并且不会触发onerro事件。

所以我想知道浏览器如何认为某个img加载错误,似乎它不是基于状态代码。

关于此的任何文件?

1 个答案:

答案 0 :(得分:0)

在Img标记上添加事件列表器并调用自定义逻辑。

示例代码:

<img id="photo"
     onload='loaded(this.id)'
     src=""
     alt="alt text"
     />

有关于如何检测图像加载错误的帖子。 Post 1,使用普通Javascript和this进行检测。