Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为损坏的映像加载返回的实际响应_Javascript_Html_Dom - Fatal编程技术网

Javascript 为损坏的映像加载返回的实际响应

Javascript 为损坏的映像加载返回的实际响应,javascript,html,dom,Javascript,Html,Dom,使用Imageonerror属性是一种广为人知的检测/处理损坏图像的做法 但在我的特殊情况下,我需要根据HTTP状态代码(如果有)、HTTP头(如果有)和实际响应体(如果有)执行不同的操作 我已经通过了标准,谷歌和手动通过错误对象传递到回调,几乎可以肯定这是不可能做到的 所以我只需要有人用一个例子来证实或反驳这一点 作为基线,我们可以使用以下代码: var i = new Image(); i.onerror = function(e) {}; i.src = someUrl; 那么,有没有一

使用
Image
onerror
属性是一种广为人知的检测/处理损坏图像的做法

但在我的特殊情况下,我需要根据HTTP状态代码(如果有)、HTTP头(如果有)和实际响应体(如果有)执行不同的操作

我已经通过了标准,谷歌和手动通过错误对象传递到回调,几乎可以肯定这是不可能做到的

所以我只需要有人用一个例子来证实或反驳这一点

作为基线,我们可以使用以下代码:

var i = new Image();
i.onerror = function(e) {};
i.src = someUrl;

那么,有没有一种方法可以实现我想要的或不想要的呢?

如果该映像来自同一个域,或者启用了CORS,那么您可以对其发出AJAX请求,并查看您得到了什么标题…(尽管远程服务器可能无法实现CORS,如果它实际上找不到该映像的话)@CBroe在这种情况下是我的服务器,我认为这是一种潜在的解决方法,但即使如此,也不能保证第二个响应与原始响应完全相同。那么真的需要检查客户端吗?定期评估服务器日志中的错误和/或实施404/500/。。。记录/通知某人的错误文档不够?“无法保证第二个响应将与原始响应完全相同”-您的服务器是否普遍有点情绪化,或者为什么您希望同一客户端的两个后续请求得到不同的结果??您需要执行哪些不同的操作,根据您提到的标准?首先,是否可以选择通过AJAX加载图像?如中所示,如果请求成功响应,请将其转换为数据URI并使用该URI显示图像。。。(这项工作的顺利程度可能取决于图像的大小、数量等)至少这有助于避免两个请求(可能是两个不同的响应)的问题。